WebKit: texte Flou avec css échelle + translate3d
Je vois un problème où le Chrome et d'autres navigateurs WebKit massivement flou css à l'échelle du contenu qui a également translate3d appliquée.
Voici un JS Fiddle: http://jsfiddle.net/5f6Wg/. (Afficher dans le navigateur Chrome.)
CSS:
.test {
-webkit-transform: translate3d(0px, 100px, 0px);
}
.testInner
{
/*-webkit-transform: scale(1.2);*/
-webkit-transform: scale3d(1.2, 1.2, 1);
text-align: center;
}
HTML:
<div class="test">
<div class="testInner">
This is blurry in Chrome/WebKit when translate3d and scale or scale3d are applied.
</div>
</div>
Sont-ils connus et des solutions de contournement pour cela? Je reçois que dans l'exemple simple ci-dessus, je pourrais simplement utiliser traduire plutôt que translate3d - le point ici est de dépouiller le code à l'essentiel.
- Même sur firefox
- je pense que c'est résolu, n'a pas l'air flou pour moi
- Un petit addittion: dans le dernier Chrome je coincé avec un problème comme lors de l'utilisation de pas de valeurs arrondies pour
translate3d
. En les arrondissant fixe tous les blurr pour moi.
Vous devez vous connecter pour publier un commentaire.
Webkit traite 3d transformé éléments que les textures au lieu de vecteurs dans le but de fournir de l'accélération 3d matérielle. La seule solution à ce problème serait d'augmenter la taille du texte et d'en réduire l'élément, dans l'essence de la création d'un supérieur res texture.
Voir ici:
http://jsfiddle.net/SfKKv/
Noter que l'anticrénelage est encore underpar (tiges sont perdues) je suis donc le renforcement de la texte avec un peu de l'ombre du texte.
J'ai trouvé que l'utilisation de:
sur le contenant de votre police ou de jeu d'icônes gardé les choses croustillantes pour moi, après l'expérience avec la question sur Android nexus 4.2 pendant un certain temps.
-webkit-transform: translate3d(0,0,0)
CSS3 introduit un tas de standard des effets de filtre, l'un d'eux est le flou fitler:
Définir le rayon de 0 va forcer le navigateur à utiliser le GPU de calcul et de le forcer à garder votre élément html inchangé. C'est comme l'application d'une "bords durs" des effets.
Donc, la meilleure solution pour moi pour résoudre ce flou qui a pour effet d'ajouter à cette simple ligne de code:
Il y a aussi un bug connu qui affecte uniquement les écrans retina. (Voir ici: Pourquoi ne pas flou(0) supprimer tout le texte flou dans Webkit/Chrome sur la rétine des écrans?). Afin de rendre cela fonctionne aussi pour la rétine, je vous recommande d'ajouter cette deuxième ligne:
Essayer cette
Ou pour une approche exacte, vous pouvez appeler une fonction javascript pour recalculer la matrice de transformation en supprimant les valeurs décimales de la matrice. voir: https://stackoverflow.com/a/42256897/1834212
zoom: 1.005;
bien fonctionné. pas besoin d'utiliserscale
Je suis tombé sur ce problème lors de l'utilisation de l'isotope plugin (http://isotope.metafizzy.co/index.html) en combinaison avec le zoom plugin (http://janne.aukia.com/zoomooz/). J'ai construit un plugin jquery pour gérer mon cas. Je l'ai jeté dans un dépôt github dans le cas où tout le monde pourrait en profiter. - https://github.com/charleshimmer/jquery-hirestext.
J'ai utilisé du javascript pour déplacer le texte 1px de haut et puis avec 100ms après, de retour 1px vers le bas. C'est presque unperceptive et résolu complètement le problème de la croix-navigateur.
ou je pense que vous pourriez le mettre sur un élément spécifique, mais j'ai eu des problèmes avec l'un des éléments qui affectent l'ensemble du site.
Je pense que c'est un problème avec la coutume police des polices.
Cela n'a rien à faire avec elle. Vous remarquerez que votre problème d'aliasing peut être résolu avec l'ajout de la durée et la direction de l'information (par exemple de 0,3 linéaire). Votre avoir une mare d'essayer de rendre tout à l'exécution:
De même pour le ci-dessus ^