J'ai un en-tête de page personnalisé dans un thème WordPress qui affiche simplement une image d'arrière-plan et du texte personnalisé qui est ajouté sur le dessus de l'image.Ajouter un fond incliné à DIV en utilisant CSS3
Actuellement l'en-tête ressemble à ceci:
Je voudrais ajouter une barre d'arrière-plan biaisé au texte qui est imposée au-dessus de l'image d'arrière-plan afin qu'il ressemble à ceci:
La div asymétrique donnerait des arrière-plans dégradés au texte d'en-tête et de sous-en-tête. J'essaie de créer les divs de graissage en utilisant le pseudo-sélecteur CSS ::before
tag.
Mes problèmes sont que le texte est effectivement contenu dans un Container
div qui définit la largeur de la div divisée.
J'essaye de faire en sorte que l'arrière-plan div de Summer Sale
se rapproche du bord gauche de la fenêtre du navigateur. Cela signifierait qu'il devrait sortir du conteneur. Je voudrais faire la même chose pour le texte subheader
.
Aussi, je trouve que actuellement la largeur du summer sale
s'étend sur toute la largeur du div contenant comme sur la photo. Je ne suis pas après ça. Je voudrais qu'il ne couvre que la largeur du texte summer sale
.
Voici mes extraits de code:
Code HTML
<div class="container">
<div class="row">
<div class="col span_6">
<h1>Summer Sale</h1>
<span class="subheader">Save big on selected products</span>
</div>
</div>
</div>
CSS code
#page-header-bg h1::before {
content: "";
position: absolute;
width: 100%;
height: 100%;
z-index: -1;
border-radius: 6px;
background: rgba(0,0,0,0.4);
border-color: rgba(0,0,0,0.5);
border-right-width: 4px;
border-right-style: solid;
-webkit-transition: background .2s ease-in-out;
transition: background .2s ease-in-out;
}
#page-header-bg h1::before, #page-header-bg .subheader::before {
-webkit-transform: skew(20deg);
-ms-transform: skew(20deg);
transform: skew(20deg)
}
#page-header-bg h1::before, #page-header-bg .subheader::before {
background: -moz-linear-gradient(left, rgba(0,0,0,0) 0%, rgba(0,0,0,0.35) 60%);
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(0,0,0,0)), color-stop(60%, rgba(0,0,0,0.35)));
background: -webkit-linear-gradient(left, rgba(0,0,0,0) 0%, rgba(0,0,0,0.35) 60%);
background: -o-linear-gradient(left, rgba(0,0,0,0) 0%, rgba(0,0,0,0.35) 60%);
background: -ms-linear-gradient(left, rgba(0,0,0,0) 0%, rgba(0,0,0,0.35) 60%);
background: linear-gradient(to right, rgba(0,0,0,0) 0%, rgba(0,0,0,0.35) 60%);
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#40000000', GradientType=1);
}
#page-header-bg .subheader, #page-header-bg h1 {
position: relative
}
#page-header-bg .subheader::before {
content: "";
position: absolute;
width: 100%;
height: 100%;
background: #000;
background: rgba(0,0,0,0.7);
z-index: -1;
padding: 0px 5px 5px 10px;
border-radius: 6px
}
Je pensais à régler la largeur de l'étiquette #page-header-bg h1::before
mais je ne peux pas faire que le texte va changer et je peux; t savoir quelle est la largeur wi serai.
Toute aide serait grandement appréciée.
Super, merci @charlietfl. Cela a fonctionné pour contenir la largeur du texte principal de l'en-tête h1. Maintenant, j'ai un problème avec la largeur du sous-en-tête. Je ne pouvais pas l'afficher comme 'display: inline-block' car il se trouve dans la même position que l'en-tête. J'ai dû changer '.subheader {display: block}' pour le faire s'asseoir sous l'en-tête. Une idée sur la façon de faire que le gradient affleure sur la fenêtre de gauche? – Jason
être plus facile à aider avec une démo en direct pour permettre de modifier css droite dans les outils de développement du navigateur – charlietfl
Peut essayer sur cette URL: http://bizstream.wpinsite.com/shop – Jason