CSS - white-space-collapse
概要
属性名 | white-space-collapse |
---|---|
値 | collapse | discard | preserve | preserve-breaks | preserve-spaces | break-spaces |
初期値 | collapse |
適用可能要素 | テキスト要素 |
継承 | 継承する |
サポート | https://caniuse.com/?search=white-space-collapse |
説明
テキスト中のホワイトスペース (半角スペース(U+0020)、タブ文字(U+0009)、改行文字(U+000D や U+000A)) をどのように表示するかを指定します。まだ安定していない機能ですので今後仕様が変わる可能性があります。
- collapse
- 1つ以上連続する半角スペース、タブ文字、改行文字を1つの半角スペースに変換した後、行頭と行末の半角スペースを削除します。
- preserve
- 半角スペース、タブ文字、改行文字をそのまま残します。
- preserve-breaks
- 改行文字はそのまま残します。1つ以上連続するホワイトスペースを1つの半角スペースに変換した後、すべての行の行頭と行末の半角スペースを削除します。
- preserve-spaces
- スペース文字(半角スペースとタブ文字)を残します。1つの改行を1つの半角スペースに変換します。行頭と行末の半角スペースは残します。
- break-spaces
- preserve とほぼ同等ですが、スペースで改行する点が異なります。preserve は半角スペースやタブ文字が横幅をあふれても改行しませんが、break-spaces は半角スペースやタブ文字が横幅を超えると改行を行います。現時点(2025年1月の Chrome 131 ではまだサポートされていません。Firefox 124 でサポートされています。
- discard
- 半角スペース、タブ文字、改行文字をすべて削除します。現時点(2025年1月)の Chrome 131 や Firefox 134 ではまだサポートされていません。
使用例
collapse, preserver, preserver-breaks, preserve-spaces の差異
CSS
.my-example { margin-bottom: 1rem; } .my-box { display: inline-block; border: 1px solid #999; font-family: Consolas; }
HTML
※各行の先頭と末尾に4文字の半角スペースを入れています。 <div class="my-example"> <h3>collapse</h3> <div class="my-box" style="white-space-collapse: collapse"> AAAA BBBB CCCC DDDD EEEE FFFF </div> </div> <div class="my-example"> <h3>preserve</h3> <div class="my-box" style="white-space-collapse: preserve"> AAAA BBBB CCCC DDDD EEEE FFFF </div> </div> <div class="my-example"> <h3>preserve-breaks</h3> <div class="my-box" style="white-space-collapse: preserve-breaks"> AAAA BBBB CCCC DDDD EEEE FFFF </div> </div> <div class="my-example"> <h3>preserve-spaces</h3> <div class="my-box" style="white-space-collapse: preserve-spaces"> AAAA BBBB CCCC DDDD EEEE FFFF </div> </div>
表示
collapse
AAAA BBBB CCCC
DDDD EEEE FFFF
※空白や改行はすべて1文字半角スペースに置換し、行頭・末尾の半角スペースを削除。
preserve
AAAA BBBB CCCC
DDDD EEEE FFFF
※空白や改行はすべてそのまま表示。
preserve-breaks
AAAA BBBB CCCC
DDDD EEEE FFFF
※改行は残すけど空白は1文字半角スペースに置換し、行頭・行末の半角スペースを削除。
preserve-spaces
AAAA BBBB CCCC
DDDD EEEE FFFF
※空白は残すけど改行は1文字の半角スペースに置換。
※Chrome 131 はまだ未サポート。
preserve と break-spaces の差異
行末には4文字の半角スペースを入れています。テキストを選択すると半角スペースの有無が分かります。preserve は半角スペースが横幅をあふれていても改行しませんが、break-spaces は半角スペースがあふれると改行します。
HTML
<div class="my-example"> <h3>preserve</h3> <div class="my-box" style="width: 33ch; white-space-collapse: preserve"> AAAA BBBB CCCCCCCCCCCC DDDD EEEE FFFFFFFFFFFF </div> </div> <div class="my-example"> <h3>break-spaces</h3> <div class="my-box" style="width: 33ch; white-space-collapse: break-spaces"> AAAA BBBB CCCCCCCCCCCC DDDD EEEE FFFFFFFFFFFF </div> </div>
表示
preserve
AAAA BBBB CCCCCCCCCCCC
DDDD EEEE FFFFFFFFFFFF
break-spaces
AAAA BBBB CCCCCCCCCCCC
DDDD EEEE FFFFFFFFFFFF
関連項目
リンク
- https://drafts.csswg.org/css-text-4/#white-space-collapsing
- https://developer.mozilla.org/ja/docs/Web/CSS/white-space-collapse
- https://caniuse.com/?search=white-space-collapse
Copyright (C) 2025 杜甫々
初版:2025年1月19日、最終更新:2025年1月19日
https://www.tohoho-web.com/css/prop/white-space-collapse.htm