pxとremの違い

CSSのサイズ指定単位には様々な種類があります。px・em・remはその中でも最もよく使われますが、それぞれ基準が異なります。

px(ピクセル)

絶対単位。1pxはモニターの1ドットに相当します(デバイスピクセル比により実際の物理ピクセル数は異なります)。直感的でわかりやすいですが、ユーザーがブラウザのフォントサイズを変更しても追従しません。

em

相対単位。親要素のフォントサイズを1emとします。ネストが深くなると計算が複雑になる(1.2em × 1.2em = 1.44em)という問題があります。

rem(root em)

相対単位。ルート要素(<html>)のフォントサイズを1remとします。ブラウザのデフォルトは16pxなので、1rem = 16pxが基準です。emと違い、ネストの深さに関係なく常に同じ基準なので計算しやすいです。

remを使うべき理由(アクセシビリティ)

ユーザーがブラウザの設定でフォントサイズを大きくした場合、pxで固定されたレイアウトは追従しません。remを使うと、ユーザーの設定に応じてUIが適切にスケールし、視覚障害のある方や高齢者にとって使いやすくなります。

計算の基本

  • 16px = 1rem
  • 14px = 0.875rem
  • 12px = 0.75rem
  • 24px = 1.5rem

計算式:rem値 = px値 ÷ 16

実務での使い分け

  • フォントサイズ・余白(margin/padding)→ rem(アクセシビリティ対応)
  • ボーダー・シャドウ → px(拡大されると不自然になりやすい)
  • コンテナ幅 → %またはvw(レスポンシブ対応)