Question

Quel est le minimum autorisé valeur négative pour le text-indent propriété?

J'utilisais une valeur bizarrement énorme sur mon site (quelque chose comme text-indent: -99999999px), et il a cessé de fonctionner avec la dernière mise à jour de Google Chrome.IE fonctionne toujours bien, mais je devrai peut-être supprimer quelques 9 pour le faire fonctionner à nouveau avec Chrome.

Clause de non-responsabilité:oui, cette valeur est un peu trop paranoïaque, je l'ai utilisée pour m'amuser et je l'ai complètement oubliée jusqu'à ce que le texte apparaisse à l'écran aujourd'hui.Mais ce qui est habituellement suggéré text-indent: -9999px pourrait-il facilement échouer à un moment donné dans un avenir (pas si) lointain ?

Était-ce utile?

La solution

Une valeur sûre est probablement -32768px, cependant, cela ne fait pas partie des spécifications mais plutôt une observation d'une restriction héritée (peut-être obsolète) spécifique à l'implémentation.

Avant que les valeurs des propriétés CSS puissent être appliquées aux éléments au moment du rendu, ces déclarations doivent être analysées en quelque chose de plus opérationnel et abstrait qu'une chaîne de caractères.Je veux dire, tu peux taper presque tout comme valeur de propriété :

.a {text-indent: -999px;}
.b {text-indent: -99999999px;}
.c {text-indent: medium potato;}

Le premier exemple serait, en croisant les doigts, analysé correctement ;le dernier n'est pas valide et serait ignoré (puisqu'une pomme de terre moyenne ne fait pas actuellement partie de la spécification CSS du w3c) ;mais celui du milieu serait bizarre si c'était le cas débordement (ne « rentre » pas dans la mémoire allouée par le navigateur).J'ai assemblé un violon et voici les text-indent valeurs auxquelles les navigateurs se sont "étouffés" et sont passés à zéro par défaut :

#On OSX 10.8 Lion 64bit:
Safari 6       -2^31
Chrome 22      -2^26  #your original -99999999px would have failed here
Firefox 14     -2^70
Opera 12       -2^70

#On Win Server 2008 64bit:
Firefox 13     -2^70
Chrome 21      -2^70
IE 9           -2^70

Cela m'a rendu curieux, je ferai plus de tests sur une autre boîte demain. Résultats ci-dessus mis à jour, rien de trop excitant. Vous pouvez également exécuter votre propre test en utilisant ce violon - le premier élément qui reste visible afficherait la valeur appliquée qui a été ignorée. Je suppose que les valeurs varient en fonction du navigateur/système d'exploitation utilisé ainsi que peut-être matériel.

Je me souviens avoir vu pour la première fois un pratique référence à une telle limitation dans un article sur le style des fausses colonnes^ qui suggérait qu'une contrainte conservatrice soit celle d'un entier signé de 16 bits (de -32768 à +32767) - qui s'appliquerait à pas seulement retraits de texte mais autres valeurs de longueur.Je ne sais pas à quel point cette valeur est cohérente entre les différents navigateurs et leurs versions, ni dans quelle mesure elle serait applicable aux fractions ou aux valeurs exprimées dans différentes unités.

Autres conseils

Il n'y a pas de retrait de texte minimum - j'ai utilisé seulement quelques pixels auparavant, mais c'est une mauvaise pratique à utiliser pour la mise en page/la conception, assurez-vous qu'il défile hors de l'écran lors de la visualisation sur des mises en page de taille plasma, par exemple, 99999px - c'est plus que suffisant - utilisez des marges remplissages et positions si vous souhaitez toujours voir le texte et que vous l'utilisez pour le style.

J'ai des problèmes dans Safari sur iPad avec un numéro de 99999em, corrigé pour moi en le définissant sur 9999em.Alors peut-être qu'il n'y a pas de limite, mais il devrait y en avoir une pour éviter ces erreurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top