CSS line-height の推奨値(1.6〜1.8)と単位なし指定すべき理由

CSS デザイン UI フロントエンド タイポグラフィ

WebデザインおよびCSSコーディングにおける適切な line-height(行高・行間)の決め方、Figma等のデザインカンプからの計算方法、および単位指定による継承の注意点です。

1. オンライン line-height テスター & 計算ツール

フォントサイズと行高を指定して、CSSの倍率指定(無単位)をリアルタイムに確認できます。

🖋️ この場で行間(line-height)を確認する

line-height(倍率)
CSS

2. 要素別の推奨 line-height 一覧表

日本語フォントは英字(Latin)に比べて正方形(仮想ボディ)に近い全角形状を持ち、画数も多いため、英字よりもやや広い行間(1.6〜1.8)を設定することで視認性と判読性が跳ね上がります。

対象要素推奨 line-height理由・デザイン上の効果
本文 (Body / 記事テキスト)1.61.8長文を読んでも目が滑らず、次の行への視線移動がスムーズになる
大見出し (H1 / H2)1.21.4文字サイズが大きいため、広い行間だと別の見出しに見えてしまう
小見出し (H3 / H4)1.41.5本文より少し引き締まった印象を与える
UIパーツ (ボタン / タグ)1.01.2 (または flex 中央揃え)上下中央揃えを維持し、無駄な上下余白を排除する

3. なぜ line-height に単位(px / em)を付けてはいけないのか?

CSSでは line-height: 24pxline-height: 1.5em のように単位を付けると、計算済みの固定px値が子要素に継承されるため、表示崩れが発生します。

❌ 単位あり(1.5em)指定で起きる事故

.parent {
  font-size: 16px;
  line-height: 1.5em; /* 16px * 1.5 = 24px の固定値として計算される */
}

/* 子要素でフォントサイズを大きくした場合 */
.parent .child-title {
  font-size: 32px; 
  /* 継承された line-height は 24px のまま! -> 文字同士が上下に重なって潰れる */
}

✅ 単位なし(1.5)指定(正解)

.parent {
  font-size: 16px;
  line-height: 1.5; /* 単位なしの「倍数」として継承される */
}

.parent .child-title {
  font-size: 32px; 
  /* 子要素自身の 32px * 1.5 = 48px に動的再計算される -> 崩れない */
}

デザインカンプの Line Height (px) ÷ Font Size (px) = CSS line-height (倍数)

例: 26px ÷ 16px = 1.625 → line-height: 1.625;