数値の単位
CSSではフォントサイズやらなんやらで指定できる数値には数種類の単位が存在しています。
その中でも、emとpxについて説明を行います。
px
ピクセル数での指定となります。
今見られている画面の解像度に依存します。
なので解像度を変更すれば文字サイズもかわるのです。
またピクセル指定を行うと、親要素で指定されたサイズを上書きし独立した大きさで表示させることが可能です。
親要素16px
子要素:18px
子要素:18px
em
親要素に指定されているフォントサイズを1とした倍率の指定です。
例えば、親要素にfont-size:16pxが指定されている場合
子要素はfont-size:1emとなります。(16*1で子要素は16pxのフォントサイズ)
なので、子要素をfont-size:2emとすると、16*2で32pxのフォントサイズになります。
また、小数点での指定も可能となり
親要素:font-size:16px 子要素:font-size:0.75emとすると、16*0.75で12pxとなります。
親要素16px
子要素:1em(16*1で16px)
子要素:16px(比較用)
子要素:1em(16*1で16px)
子要素:16px(比較用)
親要素16px
子要素:2em(16*2で32px)
子要素:32px(比較用)
子要素:2em(16*2で32px)
子要素:32px(比較用)
親要素16px
子要素:0.75em(16*0.75で12px)
子要素:12px(比較用)
子要素:0.75em(16*0.75で12px)
子要素:12px(比較用)
親とその親にもサイズが指定されている場合は?
<div style="font-size: 16px" class="mb25"> おじいちゃん要素<br /> <div style="font-size: 20px" class="mb25"> 親要素<br /> <span style="font-size: 2em;font-weight: normal;">子要素</span><br /> </div> </div>
例えば上記の場合、emはどこの数値を参照して計算するのでしょうか(´・ω・`)
正解は、【直前の親】の数値になります。
おじいちゃん要素16px
親要素20px
子要素:2em(20*2で40px)
子要素:40px(比較用)
子要素:2em(20*2で40px)
子要素:40px(比較用)