2012-09-27 3 views
6

http://jsfiddle.net/3BFGU/71/La largeur de l'élément html est inférieure à la somme de la largeur des éléments enfants individuels?

Largeur de l'élément parent html (calculée à partir de 1 $ (el) .Width() 1) est inférieure à la largeur combinée des éléments enfants.

  1. Ne se produit que dans Firefox.

Une idée pourquoi cela pourrait-il se produire?

+0

Quelle version de Firefox? Ça n'arrive pas en 15 pour moi. –

+0

J'utilise 15.0.1.Également se produit avec la construction Nightly de FF (version 17) – sbr

Répondre

4

Probablement, la largeur totale est une somme de largeurs et ces largeurs fractionnaires précédemment arrondies d'une certaine façon. Cette somme n'est pas égale à la largeur du conteneur. J'ai trouvé que plus d'éléments produisent plus d'inexactitudes, par ex. 3 pixels de différence pour 5 éléments.

actualy, bloc de texte en ligne peut avoir fractionnelle largeur, par exemple 10.6px. Donc, trois de ces blocs placés dans une rangée prendront 31.8px ≈ 32px. Mais lorsque chaque largeur est arrondie à ≈ 11px * 3 = 33px au total. Voici la defference d'un pixel. http://jsfiddle.net/3BFGU/86/

n.b. Le moteur de rendu de police de Firefox commence à utiliser placement de lettre sous-pixel seulement lorsque font-size> 15px (pour au moins Verdana, Arial et Segoe UI, qui ont des indices extrêmes appliqués). Quand moins chaque lettre a une valeur de largeur entière et toutes les mêmes lettres dans la chaîne ont exactement la même image raster. Ce behaivior clairement vu avec letter-spacing: .9px; et la commutation entre font-size: 14.9px; et font-size: 15.1px;

En outre, il y a un an, je fait a little playground pour tester les moteurs de rendu des différents navigateurs.

+0

Merci. Si vous pouvez élaborer sur le bloc de texte en ligne peut avoir une largeur fractionnaire, ce sera cool. – sbr

2

On dirait un bug dans Firefox .... peut-être une erreur d'arrondi?

L'erreur n'est pas cohérente. Si vous ajoutez un espace à l'intérieur de la deuxième travée, après «nouveau», il calcule correctement (je suis en train de tester sur 14.0.1).

http://jsfiddle.net/DigitalBiscuits/3BFGU/81/

Aussi, si vous changez le dernier 'w' à un nouveau capital, il calcule correctement. Cela me porte à croire que c'est à la façon dont firefox calcule la taille des éléments en pixels, et il doit y avoir un arrondi, haut ou bas, impliqué qui cause cette anomalie.

~ ~ Modifier

J'ai juste mis à jour à 15,0 et je obtenir les mêmes résultats. Je vais tester sur toutes les versions jusqu'à ce que je sois complètement mis à jour et que vous sachiez les résultats.

même à nouveau sur 15.0.1, la dernière version

0

La largeur exacte est arrondie au moment du calcul. Cela pourrait peut-être amener ff à montrer un tel résultat.

Questions connexes