Pourquoi voudriez-vous utiliser un HTML / CSS largeur de 99,9% au lieu de 100%?
Question
J'ai vu beaucoup de développeurs à écrire des largeurs de style en ligne HTML ou CSS de 99,9% dans des endroits où j'utiliser 100%. Y at-il une raison valable pour l'utilisation de 99,9%? At-il une réelle différence de 100%?
EDIT pour retweet MSalters' très bonne question: Considering that 99.9% is one pixel off above 500 pixels, why not 99.99%?
Je suppose qu'il a raison, que si vous allez avec le dirty hack
vous devez utiliser 99,99%, personne ne désaccord
Références supplémentaires:
- Commentaire de Stum @ Michael sur la propriété zoom CSS m'a conduit à ce lien intéressant avec le déclenchement hasLayout
zoom
: http://www.bennadel.com/blog/1354-The-Power-Of-ZOOM-Fixing-CSS-Issues-In -Internet-Explorer.htm . - Dunn a offert ce @ Andrew lien incroyablement complet sur hasLayout: http://www.satzansatz.de /cssd/onhavinglayout.html
La solution
La propriété hasLayout
Il est un hack sale utilisé pour définir la propriété hasLayout
spécifique IE de l'élément à true. La propriété hasLayout
« détermine comment les éléments liés dessiner et leur contenu, d'interagir avec et se rapportent à d'autres éléments, et réagir et événements de l'application d'émission / utilisateur. » Donner un layout
élément est un moyen facile de résoudre de nombreux bogues liés à mise en page qui apparaissent dans Internet Explorer.
Qu'est-ce qui est avec 99,9%?
Réglage de la largeur à 99,9% est un moyen de déclencher. La raison pour laquelle vous utiliseriez 99,9% est parce que la mise en page est donnée à un élément si son width
est réglé sur autre chose que auto
. Réglage à un pourcentage empêche la nécessité d'utiliser une largeur fixe.
Après quelques essais jsFiddle, je suis venu à la conclusion qu'il est vraiment pas nécessaire d'utiliser une largeur de 99,9%, en utilisant une largeur de 100% est tout aussi efficace. http://jsfiddle.net/3qfjW/2/ (IE-Only). Il semble que l'établissement width
à 99,9% peut avoir été un idée fausse commune qui a collé .. Étaler le mot peuple.
Autres méthodes
Vous pouvez également déclencher hasLayout
utiliser zoom: 1;
Bien que ce soit la méthode préférée pour beaucoup, car il ne plaisante pas avec d'autres fonctions liées au style d'un élément, il est également le code CSS valide, qui n'est pas une option à utiliser pour certains les développeurs.
Lectures
Pour plus de méthodes pour déclencher hasLayout
consulter: http://www.satzansatz.de/cssd /onhavinglayout.html
Pour plus d'informations sur le chèque de propriété hasLayout
sur l'article MSDN sur hasLayout
http://msdn.microsoft.com/en-us/library/bb250481 (VS.85) .aspx (Ceci est en fait une excellente lecture, beaucoup d'informations détaillées)
Autres conseils
Il est vrai width
de quoi que ce soit, mais auto
et zoom
déclencheur hasLayout et zoom
est la propriété / valeur plus flexible puisqu'elle ne je ne pense pas plaisante pas avec la largeur mais c'est la raison pour laquelle vous avez vu les développeurs utilisent 99,9% .
Dans certains cas flottants, il est nécessaire que la largeur combinée des flotteurs ne correspond pas à 100% (si cela est spécifié en pourcentage) car IE6 calcule de manière incorrecte que au-delà de 100% et le plus souvent ce dernier flotteur tombe.
La solution consiste à spécifier soit une marge de droite -1px juste pour IE ou de faire la somme de 99,99%.
J'ai documenté le bug . Donc, si elle est liée ou non à ce que vous voyez, espérons que le lien de bogue aide tout le monde l'expérience.