DESIGN / CODE / INFRA / AI

解説

rem・em・pxはどう違う?文字サイズの基準を作例で確かめよう

入れ子の文字が大きくなるのはなぜ?remとemの基準の違いを、保存して試せるHTMLで確認するよ。

rem・em・pxはどう違う?文字サイズの基準を作例で確かめよう

同じ1.5emなのに、場所によって大きさが違う。そんなときは「何を基準にしているか」を見てみよう。

rem・em・pxはどう違う?文字サイズの基準を作例で確かめようの解説図

図:font-sizeについての計算例。余白などに使うemはその要素自身の文字サイズが基準。

font-sizeでの基準の違い

単位 文字サイズでの考え方
px CSSピクセルで指定する
rem ルート要素の文字サイズを基準にする
em 親から受け継ぐ文字サイズを基準にする

ここではfont-sizeについて説明しているよ。emを余白など別のプロパティに使うときは、その要素自身の文字サイズが基準になるので区別しよう。CSSのpxも、常に画面の物理ピクセル1個と同じではないよ。

入れ子にするとどうなる?

ルート16px、親24pxとした計算例では、子の1.5remは24px、1.5emは36pxになる。さらにその内側で1.5emを指定すると54pxになりうるよ。remは親の倍率がそのまま積み重なる指定ではないんだ。

html { font-size: 100%; }
.parent { font-size: 24px; }
.child-rem { font-size: 1.5rem; }
.child-em { font-size: 1.5em; }

ルート16pxは計算上の仮定。ブラウザの設定によって違うので、実際の値を確認してね。

保存して試すHTML

remとemの比較サンプルを用意したよ。ルート側と親側のサイズを変えて、それぞれの文字がどう変わるか確かめられる。外部ライブラリや通信は使わない小さな作例だよ。

remを使えば全部解決、ではない

単位を変えても、固定した高さから文字があふれたり、ボタンが重なったりする場合があるよ。拡大表示、長い文字列、狭い画面でも確認しよう。小さくするためにブラウザの標準文字サイズを上書きしすぎないことも大切。

連続的に文字サイズを変えたい場合は、clamp()の解説と実験室も使ってみてね。

この作例で確認した結果

2026年10月15日、配布するHTMLをブラウザで開き、ルート16px・親24pxから親だけ32pxへ変更したよ。computed styleでは1.5remが24pxのまま、1.5emが48pxになることを確認した。

動かしてみよう:rem・emの大きさを比較する

作例の設定を変えて、文字や余白の大きさを比べよう。

参考・出典

みんなのコメント 0

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。