2012-05-06 5 views
11

CSSの場合、emは、ドキュメントのフォントサイズに基づく相対単位です。だから、emの正確な内容は、文書自体のフォントサイズがの場合、emsで測定されますか?私たちが言うと仮定します。文書のフォントサイズがemsで指定されている場合、 "em"とは何ですか?

<style type = "text/css"> 
body 
{ 
    font-size: 1em; 
} 
</style> 

ので、emは今再帰的に定義されています。では、これはブラウザでどのように処理されますか?

W3C docsは言う:

「日」ユニットは、それが使用されている要素の「フォントサイズ」 プロパティの計算された値に等しいです。例外は、 'font-size'プロパティ自体の値に 'em'が現れる場合です。 の場合、それは親要素のフォントサイズを参照します。縦または横の測定には を使用できます。

しかし、どのような要素がdocument.bodyある場合(このユニットはまた時々 は活版印刷のテキストでクワッド幅と呼ばれる)、その親要素はありませんか?

+1

'em'は、与えられた要素の'フォントsize'に基づいて、またはそれは 'フォントsize'に設定されたなら、それは、親のそれと比較します。ドキュメントルートの 'font-size'に相対的なユニットが必要な場合は' rem'です。 – BoltClock

答えて

23

bodyはドキュメントのルート要素ではありません。これは非常によくある誤解です。 bodyの親要素はhtmlで、デフォルトのフォントサイズはブラウザのデフォルトのフォントサイズ設定(通常は16px)と一致します。

これは、あなたがbodyhtml両方にEMSでfont-size値を設定する場合にも適用されます。あなたは、このやったので、もし:ユーザーが設定したとして16pxのデフォルトのフォントサイズを想定し、その後

html, body { font-size: 2em; } 

を、htmlは、フォントサイズを持っています32px(2回デフォルトのフォントサイズ)とbodyのフォントサイズを持っています64px(その親の2倍、html)である。


は正確には、 html要素のデフォルトのフォントサイズは、ユーザによって設定された仕様に従う好ましいデフォルトのフォントサイズに対応する、 the initial value, mediumあります。

+0

+1非常に良い答えです。 –

+0

'16px'デフォルトはある標準で義務づけられていますか、それともほとんどの(すべて?)ブラウザーが従うべき値ですか? – Channel72

+0

これは、どの標準でも必須ではありません。 – BoltClock

-1

これは、ブラウザのデフォルトのフォントサイズに関係なく、物理サイズで指定されます。 '10pt'

0

親要素がそれを定義していない場合、ブラウザのデフォルト値は16pxになります。

も、これを参照してください。http://pxtoem.com/

関連する問題