LoginSignup
33
12

More than 1 year has passed since last update.

【CSS】文字列を改行させるプロパティの挙動比較

Last updated at Posted at 2022-08-31

はじめに

CSS で文字列を改行させる方法は複数あります。備忘録も兼ねて、

  • 連続した日本語
  • 連続した半角英数
  • 連続した記号

それぞれどのような挙動をするのかをまとめました。

word-break: break-word;

See the Pen break-word by shiraishi yuma (@punkshiraishi) on CodePen.

  • 日本語は単語の途中でも改行される
  • 英語と連続した記号は単語の途中では改行されない。ただし、親要素の幅を超える長さの単語は途中で改行される。
  • 現在 非推奨 となっている

word-break: break-all;

See the Pen Untitled by shiraishi yuma (@punkshiraishi) on CodePen.

  • 日本語は単語の途中でも改行される
  • 英語は単語の途中で改行されてしまう
  • 連続した記号ははみ出す

overflow-wrap: normal;

See the Pen overflow-wrap: normal; by shiraishi yuma (@punkshiraishi) on CodePen.

  • 日本語はデフォルトでこのスタイルが適用されている
  • 連続した英語と記号ははみ出す

overflow-wrap: anywhere;

See the Pen overflow-wrap: anywhere; by shiraishi yuma (@punkshiraishi) on CodePen.

  • 日本語は単語の途中でも改行される
  • 英語と連続した記号は単語の途中では改行されない。ただし、親要素の幅を超える長さの単語は途中で改行される。
  • safari は非対応

@kangetsu121 さんから、最新の macOS、iOS では動作するという旨をコメントしていただきました。ありがとうございました。(2022/09/02)

私もつい先日 overflow-wrap を使うことがあったので気づいたのですが、overflow-wrap: anywhere; は少なくとも最新の Safari (macOS, iOS) では機能するようです。
まだトリアージ中のようですが、MDN の issue で 2022/7/16 に報告されていました。
https://github.com/mdn/browser-compat-data/issues/17012

overflow-wrap: break-word;

See the Pen overflow-wrap: break-word; by shiraishi yuma (@punkshiraishi) on CodePen.

  • 日本語は単語の途中でも改行される
  • 英語と連続した記号は単語の途中では改行されない。ただし、親要素の幅を超える長さの単語は途中で改行される。

まとめ

注意すべきは、break-allbreak-all ではないことです。
連続した記号を改行してくれません。

連続した記号を改行するのは下記のプロパティ/値です。

  • word-break: break-word; → 非推奨
  • overflow-wrap: anywhere;safari 非対応
  • overflow-wrap: break-word;

特に制限事項のない overflow-wrap: anywhere; または overflow-wrap: break-word; を使うのが良さそうです。

flex コンテナで overflow-wrap: break-word; を使う場合

overflow-wrap: break-word; は flex コンテナの中ではうまく機能しないことがあります。
下記の記事にまとめましたのでこちらも併せてご覧ください。

33
12
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
33
12