J'utilise CSS pour indiquer le texte du déclencheur d'une section de diapositives jQuery: lorsque vous survolez le texte du déclencheur, le curseur se transforme en pointeur et l'opacité du texte du déclencheur est réduite pour indiquer que le texte a une action de clic. .
Cela fonctionne bien dans Firefox et Chrome, mais dans IE8, l'opacité ne change pas.
J'ai essayé une variété de paramètres CSS sans succès.
Par exemple
HTML:
<h3 class="slidedownTrigger">This is the trigger text</h3>
CSS:
.slidedownTrigger
{
cursor: pointer;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
filter: alpha(opacity=75);
-khtml-opacity: 0.75;
-moz-opacity: 0.75;
opacity: 0.75;
}
Qu'est-ce qui empêche IE de changer l'opacité? Remarque: j'ai déjà essayé cette méthode sur différents éléments, en inversant l'ordre des instructions CSS et en utilisant uniquement celles IE. J'ai aussi essayé d'utiliser
-ms-filter: "alpha(opacity=75)";
mais sans succès.
Je suis à court de choses pour essayer de faire fonctionner la modification de l'opacité dans IE8.
Des idées?
Aucune idée si cela s'applique toujours à 8, mais historiquement IE n'applique pas plusieurs styles aux éléments qui n'ont pas de "disposition".
Le réglage de ceux-ci (exactement comme je l’ai écrit) m’a servi quand j’en avais besoin:
-moz-opacity: 0.70;
opacity:.70;
filter: alpha(opacity=70);
Vous devez d'abord définir Opacity pour les navigateurs conformes aux normes, puis pour les différentes versions d'IE. Voir Exemple:
mais ce code d'opacité ne fonctionne pas dans ie8
.slidedownTrigger
{
cursor: pointer;
opacity: .75; /* Standards Compliant Browsers */
filter: alpha(opacity=75); /* IE 7 and Earlier */
/* Next 2 lines IE8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=75)";
filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=75);
}
Notez que j'ai éliminé -moz car Firefox est un navigateur conforme aux normes et que cette ligne n'est plus nécessaire. En outre, -khtml est déprécié, j'ai donc également supprimé ce style.
De plus, les filtres d'IE ne valideront pas les normes w3c. Si vous voulez que votre page soit validée, séparez votre feuille de style de normes de votre feuille de style IE à l'aide d'une instruction if IE comme ci-dessous:
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="http://www.mysite.com/css/ie.css" />
<![endif]-->
Si vous séparez les bizarreries, votre site validera parfaitement.
Apparemment, la transparence alpha ne fonctionne que sur les éléments de niveau bloc dans IE 8. Définissez display: block.
L'utilisation de display: inline-block;
fonctionne sur IE8 pour résoudre ce problème.
FWIW, opacity: 0.75
fonctionne sur tous les navigateurs conformes aux normes.
J'avais l'habitude d'utiliser le suivant de CSS-Tricks :
.transparent_class {
/* IE 8 */
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
/* IE 5-7 */
filter: alpha(opacity=50);
/* Netscape */
-moz-opacity: 0.5;
/* Safari 1.x */
-khtml-opacity: 0.5;
/* Good browsers */
opacity: 0.5;
}
Cependant, une meilleure solution consiste à utiliser le Opacity Compass mixin . Tout ce que vous avez à faire est de @include opacity(0.1);
et il s’occupera de tout problème concernant plusieurs navigateurs. Vous pouvez trouver un exemple ici .
Aucune des réponses ci-dessus n'a fonctionné pour moi, alors je viens de donner à ma balise DIV une image d'arrière-plan transparente à la place, ce qui a parfaitement fonctionné pour tous les navigateurs.
voici la réponse pour IE 8
AND IT WORKS pour que alpha fonctionne dans IE8, vous devez utiliser l'attribut de position pour cet élément, comme
position: relative ou autre.
Ce code fonctionne
filter: alpha(opacity = 50); zoom:1;
Vous devez ajouter une propriété de zoom pour que cela fonctionne :)
Vous pouvez également ajouter un polyfil pour permettre l'utilisation de l'opacité native dans IE6-8.
https://github.com/bladeSk/internet-Explorer-opacity-polyfill
C'est un polyfil autonome qui ne nécessite pas jQuery ou d'autres bibliothèques. Il y a plusieurs petites mises en garde indiquant qu'il ne fonctionne pas sur les styles en ligne et que, pour les feuilles de style nécessitant une opacité polyfilée, elles doivent adhérer à la politique de sécurité de même origine.
L'utilisation est simple comme bonjour
<!--[if lte IE 8]>
<script src="jquery.ie-opacity-polyfill.js"></script>
<![endif]-->
<style>
a.transparentLink { opacity: 0.5; }
</style>
<a class="transparentLink" href="#"> foo </a>