CSSでテキストの折り返しや改行をコントロール!プロパティの使い方

Webサイトのコーディングで、テキストの改行や折り返しで悩むことはありませんか?長い英単語やURLが要素からはみ出してしまったり、意図しない位置で改行されてレイアウトが崩れたり…。

こんな時は、3つの改行がコントロールできるCSSプロパティで解決していきます。

この記事は white-spaceoverflow-wrapword-break という3つのプロパティの特徴と使い方、そしてどう使い分けるかをまとめていきます。

white-spaceを使った改行

white-space プロパティは、要素内の空白文字(スペース、タブ、改行)をどのように扱うかを制御します。

CSS
.text {
  white-space: normal;
}
normal連続する空白は1つにまとめられ、テキストは自動的に折り返されます。
HTMLソース内の改行は無視されます。
nowrapテキストは折り返されず、1行で表示されます。
ボタンのテキストやナビゲーションメニューなど、コンテンツ幅によって折り返しさせたくない場合に便利です。
preHTMLソース内の空白や改行がそのまま反映されます。
<pre>タグと同じ動作で、コードの表示などに適しています。
pre-wrappreと同様に空白や改行を保持しつつ、コンテナの幅に合わせて自動的に折り返します。
pre-line改行のみ保持し、連続する空白は1つにまとめられます。テキストは自動的に折り返されます。

各プロパティを実際に適用した結果は以下の通りです。

white-space: nowrap; を使用しています。 ここで改行しています。
ここではbrタグを使用しています。

white-space: pre; を使用しています。 ここで改行しています。改行がなければコンテンツ幅からはみ出ます。

white-space: pre-wrap; を使用しています。

white-space: pre-line; を使用しています。 ここに 半角スペースを2つ入れています。全角空白は  はそのまま表示されます。

overflow-wrapを使った改行

広告

overflow-wrapプロパティ(旧名:word-wrap)は、単語が要素からはみ出そうになったときに、単語の途中で改行するかどうかを制御します。

CSS
.text {
  overflow-wrap: normal;
}
normal通常の改行位置(スペースなど)でのみ改行します。
長い単語はコンテナからはみ出す可能性があります。
break-word通常の改行位置で改行できない場合のみ、単語の途中でも改行します。
できるだけ単語を保持しようとする改行方法です。
anywherebreak-wordと似ていますが、改行可能位置の計算方法が異なり、より積極的に改行します。

長いURLやハッシュタグ、メールアドレスなど、区切り位置がない長い文字列を扱う場合に特に有効です。

overflow-wrap: normal; を使用しています。Pneumonoultramicroscopicsilicovolcanoconiosis のような極端に長い英単語は、コンテンツからはみ出すことがあります。

overflow-wrap: break-word; を使用しています。このBOXはリサイズできます。
URLや(https://example.com/documents/2026/07/very-long-url-path-that-does-not-wrap-naturally-on-narrow-screens)長い英単語(Pneumonoultramicroscopicsilicovolcanoconiosis)、 加えて、メールアドレス example.user.with.a.very.long.name@some-extremely-long-domain-name-example.co.jpのような文字列も注意が必要です。

overflow-wrap: anywhere; を使用しています。このBOXはリサイズできます。
URLや(https://example.com/documents/2026/07/very-long-url-path-that-does-not-wrap-naturally-on-narrow-screens)長い英単語(Pneumonoultramicroscopicsilicovolcanoconiosis)、 加えて、メールアドレス example.user.with.a.very.long.name@some-extremely-long-domain-name-example.co.jpのような文字列も注意が必要です。

word-breakを使った改行

word-break プロパティは、単語の改行ルールをより積極的に制御します。overflow-wrap よりも強力で、言語による改行規則を変更できます。

CSS
.text {
  word-break: normal;
}
normal言語のデフォルトの改行ルールを使用します。
英語なら単語の境界で、日本語なら文字の境界で改行します。
break-allすべての文字の間で改行可能になります。英単語も途中で切られます。
keep-allCJK(中国語、日本語、韓国語)のテキストでも、単語の途中では改行しません。日本語でも英語のような改行動作になります。
break-word(非推奨)overflow-wrap: break-wordと同等の動作ですが、overflow-wrapの使用が推奨されています。

break-allは、表組みや狭いカラムなど、スペースが限られている場合に便利ですが、英文の可読性が下がるため慎重に使用しましょう。

それぞれの違い、使い分け

ここまで紹介した3つのプロパティは、それぞれ異なる役割を持っています。適切に使い分けることで、様々な改行問題を解決できます。

広告

プロパティの役割の違い

【white-space】

  • 空白文字(スペース、改行)の扱いと、自動折り返しの有無を制御
  • テキスト全体の表示方法を指定
  • 改行の禁止、ソースコードの表示、改行の保持などに使用

【overflow-wrap】

  • はみ出しを防ぐための「緊急時の改行」を制御
  • はみ出す可能性のある長い単語に指定
  • URLやメールアドレスなど、予測できない長さの文字列への対応

【word-break】

  • 単語の改行ルール自体を変更
  • すべての単語の改行方法
  • 表組みでの強制改行、CJKテキストの改行制御に使用

使い分け例

レスポンシブな見出しなど、必要に応じて改行、基本は単語を保持したい場合は overflow-wrap: break-word;

固定幅のテーブルなど、スペースが限られているため強制的に改行させたい場合は word-break: break-all;

ナビゲーションメニューなど、テキストを改行させたくない場合は white-space: nowrap;

日本語の固有名詞や専門用語など、不自然な位置での改行を極力避けたい場合は word-break: keep-all;

組み合わせる

複数のプロパティを組み合わせることで、より細かい制御が可能です。例えば汎用的なテキストコンテンツなら以下のような組み合わせ。

CSS
.text-content {
  white-space: normal; /* 通常の折り返し */
  overflow-wrap: break-word; /* はみ出し防止 */
  word-break: normal; /* 言語のデフォルトルール */
}

コメントやレビューなど、どのように入力されるか不明な場合やコード表示によく使われる組み合わせです。

CSS
.text {
  white-space: pre-wrap; /* 改行を保持 */
  overflow-wrap: break-word; /* 長いURLなどに対応 */
}

空白と改行を保持しつつ折り返し、長い行のはみ出しを防ぎます。

まとめ

CSSの改行コントロールは、white-spaceoverflow-wrapword-break の3つのプロパティで対応できます。

white-space改行や空白の扱いを決める基本プロパティ
overflow-wrapはみ出しを防ぐための優しい改行
word-break改行ルールそのものを変更する

ユーザー投稿コンテンツなら、予測できない長さの文字列に備えて overflow-wrap: break-word を設定しておくのが安全です。

一方、デザイン上改行を許したくない要素には white-space: nowrap を使用するなど、目的に応じて使い分けましょう。

それぞれの特性を理解し、状況に応じて適切に使い分けることで、思い通りの改行表示がしやすくなるはずです。

広告

カテゴリー : HTML-CSS