Je veux définir l'opacité de l'arrière-plan de div sans affecter l'élément contenu dans IE 8. avoir une solution quelconque et ne pas répondre pour définir une image .png 1 X 1 et définir l'opacité de cette image car j'utilise l'opacité dynamique et la couleur que l'administrateur peut changer cette
Je l'ai utilisé mais ne fonctionne pas dans IE 8
#alpha {
filter: alpha(opacity=30);
-moz-opacity: 0.3;
-khtml-opacity: 0.3;
opacity: 0.3;
}
et
rgba(0,0,0,0.3)
aussi.
css
internet-explorer-8
opacity
Govind Malviya
la source
la source
Réponses:
Le
opacity
style affecte tout l'élément et tout ce qu'il contient. La bonne réponse à cela est d'utiliser une couleur d'arrière-plan rgba à la place.Le CSS est assez simple:
... où les trois premiers nombres sont les valeurs rouge, verte et bleue de votre couleur d'arrière-plan, et le quatrième est la valeur du canal «alpha», qui fonctionne de la même manière que la
opacity
valeur.Consultez cette page pour plus d'informations: http://css-tricks.com/rgba-browser-support/
L'inconvénient, c'est que cela ne fonctionne pas dans IE8 ou une version inférieure. La page que j'ai liée ci-dessus répertorie également quelques autres navigateurs dans lesquels elle ne fonctionne pas, mais ils sont tous très anciens maintenant; tous les navigateurs en cours d'utilisation sauf IE6 / 7/8 fonctionneront avec les couleurs rgba.
La bonne nouvelle est que vous pouvez également forcer IE à travailler avec cela, en utilisant un hack appelé CSS3Pie . CSS3Pie ajoute un certain nombre de fonctionnalités CSS3 modernes aux anciennes versions d'IE, y compris les couleurs d'arrière-plan rgba.
Pour utiliser CSS3Pie pour les arrière-plans, vous devez ajouter une
-pie-background
déclaration spécifique à votre CSS, ainsi que lebehavior
style PIE , afin que votre feuille de style finisse par ressembler à ceci:J'espère que cela pourra aider.
[ÉDITER]
Pour ce que ça vaut, comme d'autres l'ont mentionné, vous pouvez utiliser le
filter
style d'IE , avec legradient
mot - clé. La solution CSS3Pie utilise en fait cette même technique dans les coulisses, mais vous évite d'avoir à jouer directement avec les filtres d'IE, de sorte que vos feuilles de style sont beaucoup plus propres. (il ajoute également tout un tas d'autres fonctionnalités intéressantes, mais ce n'est pas pertinent pour cette discussion)la source
c'est simple il suffit de donner
& pour IE, utilisez ce filtre
vous pouvez générer votre filtre rgba à partir d'ici http://kimili.com/journal/rgba-hsla-css-generator-for-internet-explorer/
la source
opacity
sur l'élément parent le définit pour l'ensemble de l'arborescence du sous-DOMVous ne pouvez pas vraiment définir l'opacité pour certains éléments qui ne se répercuteraient pas non plus sur les descendants. Ce n'est pas ainsi que
opacity
fonctionne le CSS , j'en ai peur.Ce que vous pouvez faire est d'avoir deux éléments frères dans un même conteneur et de définir un positionnement transparent:
alors vous devez définir transparent
position: absolute/relative
afin que son frère de contenu soit rendu dessus.rgba
peut faire la transparence d'arrière-plan des arrière-plans colorésrgba
le réglage de la couleur sur l'élémentbackground-color
fonctionnera bien sûr, mais il vous limitera à n'utiliser que la couleur comme arrière-plan. Pas d'images, j'ai peur. Vous pouvez bien sûr utiliser des dégradés CSS3 si vous fournissez des couleurs d'arrêt de dégradé dansrgba
. Cela fonctionne aussi.Mais sachez que cela
rgba
peut ne pas être pris en charge par vos navigateurs requis.Fonctionnalité de dialogue modal sans alerte
Mais si vous recherchez une sorte de masquage de la page entière, cela se fait généralement en ajoutant un autre
div
avec cet ensemble de styles:Ensuite, lorsque vous affichez le contenu, il devrait avoir une valeur plus élevée
z-index
. Mais ces deux éléments ne sont pas liés en termes de frères et sœurs ou quoi que ce soit. Ils sont simplement affichés comme ils devraient l'être. L'un sur l'autre.la source
Essayez de définir le z-index plus haut sur l'élément contenu.
la source
Qu'en est-il de cette approche:
la source
Peut-être y a-t-il une réponse plus simple, essayez d'ajouter n'importe quelle couleur d'arrière-plan que vous aimez au code, comme background-color: #fff;
la source
Cela affecte l'ensemble des div enfants lorsque vous utilisez la fonction d'opacité avec des positions autres qu'absolues. Donc, une autre façon d'y parvenir est de ne pas mettre les divs les uns dans les autres puis d'utiliser la position absolue pour les divs. N'utilisez aucune couleur d'arrière-plan pour le div supérieur.
la source
Utilisez RGBA ou si vous utilisez un code hexadécimal, changez-le en rgba. Pas besoin de faire un élément css presodu .
css ---------
OU
la source