CSSユニットは絶対単位(固定)と相対単位(何かに対してスケーリング)に分かれます。適切に選択することは、レスポンシブでアクセシブルなレイアウトの鍵となります。
絶対単位
css
.x { width: 100px; } /* px — fixed pixels; predictable, doesn't scale */
はスケーリングすべきでない要素(ボーダー、小さな固定詳細)に使用してください。
pxfont-size: 1.5rem; /* rem — relative to the ROOT font-size (html). Consistent. */
font-size: 1.2em; /* em — relative to the PARENT's font-size. Compounds! */
width: 50%; /* % — relative to the parent's size */
width: 50vw; /* vw — 50% of viewport WIDTH */
height: 100vh; /* vh — 100% of viewport HEIGHT */
html { font-size: 16px; }
.parent { font-size: 20px; }
.parent .child { font-size: 2em; } /* 2 × 20 = 40px (relative to parent) */
.parent .other { font-size: 2rem; } /* 2 × 16 = 32px (relative to root) */
emはネストを通じて累積し(子の子は掛け算される)、予期しない結果になることがあります。remは常にルートを参照するため予測可能です。フォントサイズと間隔の標準的な選択肢です。ローカルフォントに対する相対的なサイズが必要な場合にemを使用してください(例:テキストと共にスケーリングするボタンのパディング)。
font-size: 16px; /* ❌ ignores the user's browser font-size preference */
font-size: 1rem; /* ✅ scales when the user increases their default size */
テキストにremを使用すると、デフォルトフォントサイズを大きく設定したユーザーを尊重します。これはpxでは損なわれる本当のアクセシビリティの利益です。
適切なユニットは、レスポンシブで高いアクセシビリティを備えたレイアウトを実現します:remはテキスト/間隔用(予測可能 + ユーザー設定を尊重)、%/vw/vhは流動的レイアウト用、pxは固定詳細用、そしてemはローカル相対サイジング用です。
より新しいビューポートユニット(dvh、svh)は、モバイルアドレスバーの高さの問題も解決します。
ジュニアからシニアまで、詳細な回答付きのIT面接質問ライブラリ。
寄付する