2009-09-04 14 views
0

固定サイズの代わりに相対サイズを使用したいと思います。私はそれらを使用したい。CSSで固定サイズの代わりに相対サイズを使用する

私のCSSは次のとおりです。

body{ 
    font:10px; 
} 

#wrap { 
    font:1.2em; 
} 

#wrap ul li { 
    padding-left:2em; 
} 

PXでliのパディングの値は何ですか?私はそれが2.0 * 10 = 20pxだと推測していただろうが、それは1em = 12pxを取っているようだ、私はそれが親のサイズを取ることを意味する。

フォントサイズがbodyではなく、wrapであることを意味します。

ご意見ありがとうございます。

+0

(あなたのケース#wrapに)親要素のフォントサイズをとり、なぜあなたはどこにでもそれらを使用していませんか?すなわち、なぜあなたの 'body'フォントサイズを10pxに設定しているのですか(これは私の画面上では小さすぎます)。 –

+0

@Matthew相対的なフォントサイズを使用する予定がある場合、ベースラインは10pxにする必要があります。これは、他のすべてをもっと簡単に計算するためです。すべてのテキストが1.2以上になってしまったとしても。 –

+1

10pxを使用することが「ほぼ普遍」であるという証拠はありますか?それは非常に奇妙なことのように思えます。 –

答えて

1

emは、あなたが述べたように常に親要素との相対的なものです。さらに、要素の非フォント寸法は常にフォント寸法に基づいて計算されます。つまり、font-size:1.2em;padding:2emと指定すると、その要素のパディングは、次に定義される親要素のサイズの1.2倍のフォントサイズの2倍になります。

解決策は、より多くの数学を使用することです。あなたのラッパー要素が1.2emで、あなたは内側の要素のパディングがダブルベースラインのサイズになりたい場合は、tがターゲットサイズで、iサイズを継承している、とxが希望のサイズであるt=i*xを、使用する必要があります。だから私たちの場合、2emは目標サイズです。だから、パディングが1.67emでなければなりません

2em = 1.2em * x =>x = 1.67

:1.2emは継承されたサイズです。

+1

これは私が 'em'の使用を止めた理由です。 – peirix

0

#wrap ul liのフォントサイズは10pxの* 1.2em * 2EM、したがってパディング左:24ピクセル。あなたは `em`の測定値を使用したい場合は

それは常に

+0

あなたの返信をありがとう、感謝の親フォントサイズか親フォントサイズがpxで計算されています。なぜなら私は1em = 1/parent font-sizeをPXで読んでいるからです。 – vinay

+0

1emは文字「M」の幅です – knittl

+0

正しいですが、その幅は「M」のフォントサイズに依存します。次に、PXの1em = 1/parent font-size – vinay

関連する問題