Puis-je définir une opacité de l'image de fond d'un div?
Disons que j'ai
<div class="myDiv">Hi there</div>
Je veux mettre un background-image
et de donner une opacity
de 0.5
– mais je veux que le texte que j'ai écrit plein d'opacité (1
).
Si je voulais écrire le CSS comme ceci
.myDiv { opacity:0.5 }
tout sera en faible opacité – et je n'en veux pas.
Donc ma question est – Comment puis-je obtenir à faible opacité de l'image de fond avec plein de texte opacité?
- stackoverflow.com/questions/6624457/... a Noter que je fais des commentaire ( en vertu de Phil réponse ) montrant un moyen de le faire avec du css opacité, si c'est la voie préférée. ( jsfiddle.net/4tTNZ )
- Cette répondre est beaucoup plus succinct et je crois, c'est exactement le même.
Vous devez vous connecter pour publier un commentaire.
Non, cela ne peut être fait depuis
opacity
affecte l'ensemble de l'élément, y compris son contenu et il n'y a pas moyen de modifier ce comportement. Vous pouvez contourner ce avec les deux méthodes suivantes.Secondaire div
Ajouter un autre
div
élément du conteneur pour l'arrière-plan. C'est le plus cross-browser convivial méthode et fonctionne même sur IE6.HTML
CSS
Voir cas de test sur jsFiddle
:before et ::avant de pseudo-élément
Une autre astuce est d'utiliser le CSS 2.1
:before
ou CSS 3::before
pseudo-éléments.:before
pseudo-élément est pris en charge dans IE à partir de la version 8, tandis que le::before
pseudo-élément n'est pas pris en charge. Nous espérons que cela sera corrigé dans la version 10.HTML
CSS
Notes complémentaires
En raison du comportement de
z-index
vous devez définir un z-index pour le conteneur ainsi que d'un négatifz-index
pour l'image de fond.Cas de Test
Voir les cas de test sur jsFiddle:
width: 100%; height: 100%;
à la.bg
de sorte que ie6 peut se propager le bg à l'intérieur de la div parent. jsfiddle.net/sbGb4/2z-index
est une douleur, mais ce devrait être relativement en sécurité aussi longtemps que vous donnez à la mère un indice positif.::before
pseudo-élément. Est-ce que vous recherchez?z-index
ou la:before
. Voir la réponse ci-dessous.Voici donc une autre façon:
linear-gradient
. L'on a accepté la réponse que j'ai écrit est de plus de 4 ans 😉css
html
Cela peut être fait en utilisant les différents div class pour le texte Salut...
Maintenant, vous pouvez appliquer des styles à la
tag. sinon pour le bg de la classe.
Je suis sûr qu'il fonctionne bien
Aucune des solutions n'a fonctionné pour moi. Si tout le reste échoue, obtenir de l'image dans Photoshop et de les appliquer quelques effets. 5 minutes contre autant de temps sur ce...
J'ai mis en place Marcus Ekwall de la solution mais a été capable d'enlever un peu de choses pour le rendre plus simple et il fonctionne toujours. Peut-être en 2017, la version de html/css?
html:
css:
https://jsfiddle.net/abalter/3te9fjL5/
Bonjour à tout le monde, je l'ai fait et ça a bien fonctionné
JS:
CSS:
HTML:
dont 4 séries de chiffres rendrait rgba, pas cmjn, mais de toute façon serait de travailler (rgba= 00000088, cmjn= 0%, 0%, 0%, 50%)