white-space-collapse空白をまとめるか残す
連続するスペースやタブ、ソース内の改行を1つにまとめるか、そのまま表示するかを決めます。
要素の中にある空白と改行を残すかまとめるか、さらに文章を自動で折り返すかを指定するプロパティ。ソースは同じまま、値による行の形の違いを比べます。
white-spaceとは?連続する空白、ソース内の改行、文章の自動折り返しをライブプレビューで比べながら、normal・nowrap・pre・pre-wrap・pre-line・break-spacesを初学者向けに解説します。
.element white-space: normal;
値のパターン
white-space-collapse連続するスペースやタブ、ソース内の改行を1つにまとめるか、そのまま表示するかを決めます。
text-wrap-mode文章が要素の横幅へ収まらないとき、自動で次の行へ送るか、1行のまま続けるかを決めます。
組み合わせnormalやpre-wrapなどの代表値は、空白の統合と行の折り返しを分かりやすい組み合わせとして指定します。
初期値はnormalです。まず「空白を残すか」と「自動で折り返すか」の2点に分けると、各キーワードの違いを整理できます。
normal空白をまとめ、必要な位置で折り返す初期値nowrap空白をまとめ、行を自動で折り返さない1行表示pre空白と改行を残し、自動で折り返さない入力どおりpre-wrap空白と改行を残し、必要なら折り返す保存+折り返しpre-line空白をまとめ、改行を残して折り返す改行だけ保存break-spaces空白を残し、連続する空白の後でも折り返す空白を保持inherit親要素の指定値を受け継ぐグローバル日付や単位を含む短いラベルへnowrapを指定すると、途中で不自然に改行されるのを防げます。
.date-label { white-space: nowrap; }入力したコードをそのまま見せる場面ではpreを使い、連続する空白とソース内の改行を保ちます。
.code-view { white-space: pre; }メッセージの改行と連続空白を残しつつ、表示幅からはみ出さないようpre-wrapで折り返します。
.message { white-space: pre-wrap; }ポイント
white-spaceの初期値はnormalで、すべての要素に適用でき、子要素へ継承されます。nowrapとpreは文章を自動で折り返さないため、狭い画面では要素の外へはみ出すことがあります。長い文章ではpre-wrapを使うか、overflowやoverflow-wrapと組み合わせて実際の表示幅を確認します。white-spaceは空白の統合と行の折り返しをまとめる一括指定として扱われ、値の切り替えは連続的ではなく離散的に変化します。
white-space と一緒に使われるプロパティや、詳しい外部リファレンスをまとめました。