font-size: 16px、width: 50%、margin: 1rem——CSSの数字のうしろに付く単位、結局どれを使えばいいのか迷いますよね。この記事で、よく使う4つの正体と「迷ったらこれ」の使い分けを整理します。
4つの単位の正体
| 単位 | 正体 | 例 |
|---|---|---|
px | 固定の大きさ(画面のドット基準) | font-size: 16px |
% | 親の大きさに対する割合 | width: 50%=親の半分 |
rem | ページの基準文字サイズ(標準16px)の倍率 | 1.5rem=24px |
vw/vh | 画面の幅/高さに対する割合 | 100vh=画面の高さいっぱい |
大事なのは「何を基準にした大きさか」がそれぞれ違うこと。pxだけが固定で、あとの3つは何かに連動して伸び縮みします。
pxは「そのままの大きさ」
いちばん直感的な単位。書いた数字の大きさに、そのままなります。境界線の太さ(border: 1px)や細かい余白など、伸び縮みしてほしくない場所に向いています。
%は「親の大きさ」で決まる
width: 50%は「親の幅の半分」。画面が狭くなれば親も縮むので、いっしょに縮んでくれます。横幅を柔らかく決めたいときの主役です。
img {
max-width: 100%; /* 親からはみ出さない、の定番 */
}remは「基準の文字サイズ」の倍率
remはページの基準文字サイズ(標準16px)を1とする倍率です。1rem=16px、1.5rem=24px。16で割れば換算できます。
remの本領は、ブラウザの文字サイズ設定に連動すること。「文字を大きく」設定にしている人のページでは、remで書いた文字はちゃんと大きくなります。pxで書いた文字は、設定を変えても大きくなりません。
vw/vhは「画面の大きさ」で決まる
100vw=画面の幅いっぱい、100vh=画面の高さいっぱい。ファーストビューを画面ぴったりに作るときの定番です。
.hero {
height: 100vh; /* 画面の高さいっぱいのヒーロー */
}迷ったらこの使い分け
- 文字サイズ →
rem(設定に連動して親切)。練習のうちはpxでもOK - 余白・線の太さ →
px(微調整しやすく、ずれない) - 横幅 →
%やmax-width(画面に合わせて縮む) - 画面いっぱいの高さ →
100vh
「文字はrem、幅は%、こまかい調整はpx」——この3行だけ覚えれば、実戦はほぼ困りません。
CSS文字の大きさをかえよう文字サイズ指定の基本は、CSSコースのこの回へまとめ
- 単位の違いは「何を基準に伸び縮みするか」——pxだけが固定、%は親、remは基準文字サイズ、vw/vhは画面
- 文字は
remにすると、ブラウザの文字サイズ設定に連動して親切 - 迷ったら「文字はrem、幅は%、こまかい調整はpx」
単位を意識して選べるようになると、どんな画面でも崩れない、しなやかなページに近づきます。