Font Preview
line-heightの最適値を探る|狭すぎたときに何が起きるか
2025-11-05
:::note ※行間で悩んでいる人向けの「判断用」記事です :::
結論(私の判断基準)
- 日本語本文:1.7〜1.8 から始める
- 見出し:1.2〜1.4(文字が大きいので狭くてOK)
- 迷ったら:1.7 に戻す。狭すぎは致命的、広すぎは許容範囲
💡 実際に試したい → Font Preview で目視確認
よくある失敗(私が実際にやった)
失敗1:海外のUIライブラリをそのまま使った
/* ❌ Bootstrap のデフォルト */
body {
line-height: 1.5;
}
英語サイトでは読みやすい。日本語だと窮屈で、長文を読む気が失せる。
クライアントから「なんか詰まってる感じがする」と言われて、1.8 に変えたら解決した。
日本語サイトで海外の数値をそのまま使わない。これは絶対。
失敗2:見出しと本文を同じ行間にした
/* ❌ 全部同じ */
h1, h2, h3, p {
line-height: 1.8;
}
本文は読みやすかった。でも大きな見出しがバラバラに見えた。
行間を詰めすぎると、デザインしている本人だけが満足する状態になる。読者は静かに離脱する。
見出しは 1.2〜1.3。本文とは分ける。
失敗3:数値を暗記して終わりにした
「line-height 1.8」を覚えて、どのサイトでも使っていた。
でも游ゴシックとNoto Sans JPでは、同じ 1.8 でも印象が違う。游ゴシックは繊細なので、1.8 だと広すぎに感じることがある。
数値を覚えるのではなく、目で見て確認する。
日本語と欧文で違う理由
| 言語 | 推奨値 | 理由 |
|---|---|---|
| 欧文 | 1.4〜1.6 | x-heightが基準、アセンダー/ディセンダーを考慮しても狭くてOK |
| 日本語 | 1.7〜2.0 | 文字が正方形に近く、漢字・ひらがな・カタカナが混在 |
欧文は文字の「高さ」にバラつきがある(bとoで高さが違う)。日本語は全部同じ高さ。
だから日本語は「行と行の間」が視覚的に狭く感じやすい。
用途別の推奨値
| 用途 | 日本語 | 欧文 | 私の判断 |
|---|---|---|---|
| 本文テキスト | 1.7〜2.0 | 1.4〜1.6 | 迷ったら 1.7 |
| 見出し | 1.2〜1.4 | 1.2〜1.4 | 大きい文字は狭くてOK |
| UI要素 | 1 | 1 | ボタン・ラベルは 1 |
フォント別の調整
同じ数値でもフォントで印象が変わる。
| フォント | 私の設定 | 理由 |
|---|---|---|
| Noto Sans JP | 1.7〜1.8 | やや太めのフォントなので標準値でOK |
| 游ゴシック | 1.8〜2.0 | 繊細なので少し広めに |
| ヒラギノ角ゴ | 1.7〜1.9 | 標準的 |
| 明朝体全般 | 1.9〜2.2 | 縦横の太さの差が大きいので広めに |
レスポンシブ対応
モバイルでは画面が小さい分、やや広めにした方が読みやすい。
.article-body {
line-height: 1.8;
}
@media (max-width: 640px) {
.article-body {
line-height: 2.0;
}
}
私はこのパターンを必ず使っている。PCで見ると「少し広いかな」と思っても、スマホで読むとちょうどいい。
基本:単位なしで指定する
/* ✅ 単位なし(推奨) */
line-height: 1.8;
/* ❌ 固定値(文字サイズ変更時に追従しない) */
line-height: 24px;
/* ❌ パーセント(計算値が継承される) */
line-height: 150%;
単位なしで指定すると、子要素のフォントサイズが変わっても比率で計算される。
迷ったときの判断
| 迷い | 私の判断 |
|---|---|
| 数値を決められない | 1.7 から始める |
| 狭いか広いか分からない | 広い方を選ぶ(狭すぎは致命的) |
| フォントを変えた | 行間をゼロから見直す |
**迷ったら 1.7。**少なくとも破綻することはない。
この記事で解決しない場合
- 字間も調整したい → letter-spacingの調整ガイド(ただし「読みにくい」原因は行間のことが多い)
- フォント設計の全体像を知りたい → Webフォント設計の判断基準
迷ったら 1.7。それで破綻したことはない。