2012-02-28 14 views
14

Quando 1em viene applicato a un elemento, assume il valore predefinito del browser (in genere 16px) o il valore della dimensione carattere del relativo elemento principale, giusto ?. Ma ho notato che se utilizzo qualcosa come margin-top: 1em in un elemento h1 (senza utilizzare un foglio di stile di reimpostazione, e quindi, h1 è impostato su font-size: 32px), 1em è uguale a 32px, anche se l'elemento padre è impostato su font-size: 16px.Margine e riempimento utilizzando em

Tuttavia, l'utilizzo di qualcosa come dimensione del carattere: 100%; risolve la discrepanza.

Cosa mi manca?

+0

Qual è il tuo browser? Forniresti un violino? –

+0

Chrome 17 stabile e controllato anche in Firefox. –

risposta

12

Quando 1em viene applicato a un elemento, esso prende il valore predefinito del browser (in genere 16px) o il valore della dimensione carattere del suo genitore, giusto?

No, ci vuole propriofont-size, calcolato sulla base di suo genitore (o il valore di default sul browser in dotazione). Poiché il font-size del h1 fornito dal browser è 32 pixel, il margine risultante è 32 pixel.

Tuttavia, utilizzando qualcosa come dimensione del carattere: 100%; risolve la discrepanza.

Impostando font-size: 100%; o font-size: 1em; su un elemento, che stai dicendo in modo da utilizzare il 100% della dimensione del carattere del suo genitore, in modo da impostare 1em come una lunghezza su qualsiasi altra cosa seguirà che il 100%.

+0

Oh, beh, allora si basa sul suo valore ereditato. Questo lo spiega! –

+3

Si basa sul suo valore calcolato, piuttosto che sul suo valore ereditato. C'è una sottile differenza :) – BoltClock

+0

@BoltClock puoi approfondire ulteriormente? Ho avuto una comprensione simile che em è calcolato in base alla dimensione del carattere predefinito del browser di 16 pixel. Anche le citazioni al W3 sarebbero grandiose. –

9

1em è uguale alla dimensione del carattere dell'elemento nella domanda. Quindi quando lo si usa con i margini, sarà equivalente alla dimensione del font dell'elemento che si sta applicando anche al margine.

+1

Ottimo !. Grazie :-) –

Problemi correlati