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

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 */
![MARKLEAPS[マークリープス]](https://markleaps.com/blog/wp-content/themes/mkl/images/00_logo.png)


![[CSS] shape-outside プロパティで画像にテキストを回り込ませる方法](https://markleaps.com/blog/wp-content/uploads/2025/09/css-shape-outside-500x254.jpg)
![[HTML・CSS] 説明リストdlのdtとddを横並びに表示する方法(コピペで使えるコード付き)](https://markleaps.com/blog/wp-content/uploads/2025/09/html-css-dl-flex-grid-500x254.jpg)
![[CSS] 疑似クラス is() とwhere() の使い方と違い](https://markleaps.com/blog/wp-content/uploads/2023/11/css-is-where-500x254.jpg)