MARKLEAPS[マークリープス]

TECH BLOG

マークリープス技術ブログ

open

font-sizeの指定まとめ「px」「%」「em」「rem」

font-size
CSSでフォントサイズを指定する際に使われる
「px」「em」「%」「rem」。
それぞれの違いについておさらいしていきます。

ブラウザのデフォルトサイズ

ブラウザのデフォルトのフォントサイズと各単位の関係性
100% = 1em = 1rem = 16px

※1em=16px, 1rem=16px という意味ではありません

絶対値と相対値

フォントサイズの指定には、絶対値と相対値がある!

・絶対値とは
他の要素に影響されない値

・相対値とは
他の要素を基準に数値が決まる値

px(ピクセル)

絶対値指定。
他の要素に左右されない、固定された値となる。


html {font-size: 100%;} /* 16px */
.parent {font-size: 20px;}
.child {font-size: 14px;}

.child は常にfont-size: 14px; で表示されます。

em(エム)

相対値指定。
親要素のフォントサイズを基準とした相対的な値となる。


html {font-size: 100%;} /* 16px */
.parent {font-size: 20px;}
.child {font-size: 0.5em;} /* 10px */

.child は親要素(.parent)の半分のサイズで表示されます。

%(パーセント)

相対値指定。
親要素のフォントサイズを基準とした相対的な値となる。

html {font-size: 100%;} /* 16px */
.parent {font-size: 20px;}
.child {font-size: 50%;} /* 10px */

.child は親要素(.parent)の半分のサイズで表示されます。

 

em、%はここに注意!
親要素に影響されるため、入れ子の要素にそれぞれフォントサイズを指定した場合、
指定に細かな計算が必要となります。

rem(ルートエムまたはレム)

相対値指定。
最上位の要素(html)のフォントサイズを基準とした相対的な値となる。

html {font-size: 100%;} /* 16px */
.parent {font-size: 20px;}
.child {font-size: 0.5rem;} /* 8px */

.child は最上位の要素(html)の半分のサイズで表示されます。

 

Point!
以下のように、htmlに「font-size: 62.5%;」を指定しておくと、「10px = 1rem」となるので、
pxと同じ考えで計算がしやすくなります。

html {font-size: 62.5%;} /* 10px */
.parent {font-size: 1.6rem;} /* 16px */
.child {font-size: 1.4rem;} /* 14px */

よく読まれている関連記事

関連最新記事