2012-02-28 26 views
14

Cuando se aplica 1em a un elemento, toma el valor predeterminado del navegador (normalmente, 16 px) o el valor de tamaño de fuente de su elemento principal, ¿no es así? Pero noté que si uso algo como margin-top: 1em en un elemento h1 (sin usar una hoja de estilo de reinicio, y por lo tanto, h1 se establece en font-size: 32px), entonces 1em es igual a 32px, incluso si su elemento principal está establecido en font-size: 16px.Margen y relleno usando em

Sin embargo, usando algo como el tamaño de letra: 100%; resuelve la discrepancia.

¿Qué me estoy perdiendo?

+0

¿Cuál es su navegador? ¿Ofrecerías un violín? –

+0

Chrome 17 estable, y registrado en Firefox también. –

Respuesta

12

Cuando se aplica 1em a un elemento, toma el valor predeterminado del navegador (generalmente, 16px) o el valor de tamaño de fuente de su elemento primario, ¿verdad?

No, toma su propio font-size, calculado sobre la base de su matriz (o el valor suministrado en el navegador por defecto). Como el font-size suministrado por el explorador de h1 tiene 32 píxeles, el margen resultante es de 32 píxeles.

Sin embargo, utilizando algo así como tamaño de letra: 100%; resuelve la discrepancia.

Al establecer font-size: 100%; o font-size: 1em; sobre un elemento, estás diciéndole que la utilice el 100% del tamaño de la fuente de su padre, por lo que establecer 1em como una longitud en cualquier otra cosa seguirá a que el 100%.

+0

Oh, bueno, entonces está basado en su valor heredado. ¡Eso lo explica! –

+3

Se basa en su valor calculado, en lugar de su valor heredado. Hay una diferencia sutil :) – BoltClock

+0

@BoltClock ¿puedes ampliar esto un poco más por favor? Tenía un entendimiento similar de que em se calcula en función del tamaño de letra predeterminado del navegador de 16 píxeles. Las citas para W3 también serían geniales. –

9

1em es igual al tamaño de fuente del elemento en la pregunta. Entonces, al usarlo con los márgenes, será equivalente al tamaño de fuente del elemento al que está aplicando el margen también.

+1

¡Genial !. Gracias :-) –

Cuestiones relacionadas