J'ai du mal à obtenir un rendu correct dans mon navigateur (Chrome). J'ai un wrapper qui contient tous les éléments du HTML, et je veux avoir un DIV (appelons-le div-1) qui contient une image, et qui a un div superposé sur le dessus à gauche, comme je l'ai esquissé dans cette image... des solutions rapides ?
Réponses
Trop de publicités?Voici une solution CSS pure, similaire à la réponse de DarkBee, mais sans avoir besoin d'un élément supplémentaire de type .wrapper
div :
.dimmed {
position: relative;
}
.dimmed:after {
content: " ";
z-index: 10;
display: block;
position: absolute;
height: 100%;
top: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.5);
}
J'utilise ici rgba, mais vous pouvez bien sûr utiliser d'autres méthodes de transparence si vous le souhaitez.
En utilisant CSS3, vous n'avez pas besoin de créer votre propre image avec la transparence.
Il suffit d'avoir une div avec ce qui suit
position:absolute;
left:0;
background: rgba(255,255,255,.5);
Le dernier paramètre en arrière-plan (.5) est le niveau de transparence (un chiffre plus élevé est plus opaque).
Comme la réponse précédente, mais je mettrais ::avant, juste pour des raisons d'empilement. Si vous voulez inclure du texte par-dessus la superposition (un cas d'utilisation courant), l'utilisation de ::before devrait résoudre le problème.
.dimmed {
position: relative;
}
.dimmed:before {
content: " ";
z-index: 10;
display: block;
position: absolute;
height: 100%;
top: 0;
left: 0;
right: 0;
background: rgba(0, 0, 0, 0.5);
}