Problèmes de transition d'opacité de Webkit avec du texte
Situation:
À l'intérieur d'un div
j'ai une image suivi par un texte qui a un font-weight
de 900. Dans mon hébergés localement environnement, je suis en utilisant une police personnalisée, mais pour le violon, ci-dessus, j'ai choisi le "toujours aussi élégant" Comic Sans pour illustrer mon point. Avant que quelque chose se produit-je régler l'opacité de l'ensemble de la div à 0,7. Cependant, planant au-dessus de la div
je veux l'opacité de tout pour venir à une opacité totale.
Problème:
J'ai remarqué que dans les navigateurs Webkit seulement (plus évident sur Chrome que sur Safari), sur le curseur sur et hors de la div
tag, le texte du poids apparaît à changer. En réalité, il n'y a pas de changement à tous, bien sûr, dans le poids du texte. Cependant, en regardant de plus près, vous verrez le texte s'affiche il est souhaité de poids uniquement sur le vol stationnaire, mais pas dans un non-plané de l'état.
Choses que j'ai Faites:
- J'ai testé cela dans toutes les dernières versions de Chrome, Firefox et Safari.
- Je suis en train de tester ce actuellement sur le nouveau MacBook Pro qui, dans mon cas, c'est un écran retina. Cependant, le collègue à côté de moi testé le violon sur son iMac (non-retina display) seulement pour trouver le sujet est toujours apparente.
- Je suis peut-être fou, mais je crois que ce n'est peut-être la façon dont les navigateurs webkit choisir de rendre éléments avec différentes opacités. Puis à nouveau, peut-être juste moi en essayant d'éviter d'admettre j'ai fait quelque chose de mal.
Et, naturellement, j'ai pensé que je pourrais alléger l'atmosphère avec Comic Sans. Voici une capture d'écran pour aider à expliquer le problème:
source d'informationauteur cereallarceny
Vous devez vous connecter pour publier un commentaire.
Ce n'est pas un problème avec l'opacité lui-même (en fait, en le tournant à 1 dans @Zoltan l'exemple ne change rien pour moi).
Le problème est avec les transitions, il y a deux anti-aliasing modes de webkit pouvez utiliser:
Cela signifie que lorsqu'un élément est affiché à l'aide de sous-pixel de l'antialiasing et une animation est appliqué, webkit passe temporairement à niveaux de gris pour la durée de l'animation, et retour à la sous-pixel, une fois terminé.
Étant donné que subixel l'anticrénelage des résultats légèrement plus lourd face à la police, vous obtenez les indésirables artefact.
Pour résoudre le problème, ajouter ceci dans votre css:
Cette forces en niveaux de gris de l'antialiasing et tout le texte et vous ne verrez pas la commutation.
(résultat final: http://jsfiddle.net/ErVYs/9/)
Une solution possible serait de faire de l'opacité de la transition de ne pas
1
mais.999
- http://jsfiddle.net/ErVYs/2/