段落・折り返し

white-space-collapse

white-space-collapse は、HTML に書いた続いた空白や改行を 1 つにまとめるか、書いたとおりに残すかを指定します。white-space から、折り返すかどうかの指定を除いた部分です。

構文

collapse | preserve | preserve-breaks | preserve-spaces | break-spaces

プレビュー

The quick brown fox jumps over the lazy dog. 素早い茶色の狐がのろまな犬を飛び越える。
プリセット
右下の角をドラッグするとサイズを変えられます

コード

.box {
  white-space-collapse: preserve;
}

コントロール

white-space-collapsepreserve
white-space-collapse
The quick brown fox jumps over the lazy dog. 素早い茶色の狐がのろまな犬を飛び越える。

解説

値の意味

  • collapse:初期値です。続いた空白や改行を 1 つの空白にまとめ、行頭と行末の空白は消します。
  • preserve:空白も改行も、書いたとおりに残します。
  • preserve-breaks:改行だけ残し、続いた空白は 1 つにまとめます。
  • preserve-spaces:空白は書いたとおりに残し、改行とタブは空白 1 つに変えます。SVG の xml:space="preserve" と同じ扱いです。Firefox だけが対応しています。
  • break-spaces:preserve とほぼ同じですが、行末に残った空白も幅をとり、空白と空白の間でも折り返します。

プレビューの文章は、1 行目の語の間に空白が 3 つずつあり、2 行目の頭に空白 4 つの字下げがあり、2 か所で改行しています。preserve では書いたとおりに残り、preserve-breaks では空白だけが 1 つにまとまり、collapse では改行も消えて 1 つの文としてつながります。break-spaces は行末に空白があるときに違いが出るので、この文章では preserve と同じに見えます。

よく使う場面

フォームに入力された文章を、入力どおりの改行で見せるとき(preserve-breaks)や、コードの字下げを残すとき(preserve)に使います。white-space と違って折り返すかどうかは変わらないので、折り返しの指定はそのままにして、空白の扱いだけを変えられます。

気をつけること

  • white-space は、white-space-collapse と text-wrap-mode(折り返すかどうか)をまとめて書く一括指定です。white-space: pre-wrap は preserve、white-space: pre-line は preserve-breaks と同じ空白の扱いになります。あとから white-space を書くと、この指定も上書きされます。
  • 継承するプロパティなので、箱に書くと中の要素の文字にも効きます。
  • Chrome・Edge 114、Firefox 124、Safari 17.4 から使えます。仕様には空白と改行をすべて消す discard もありますが、どのブラウザも対応していないので、構文とボタンからは外しています。

コメント