word-break
https://developer.mozilla.org/en-US/docs/Web/CSS/word-break
決定單詞的換行方式:
- normal:預設斷行方式,英文以詞斷行,CJK (中日韓) 以字斷行。
- break-all:任意字斷行。
- keep-all:保留單詞,以詞斷行,CJK 句子將不會斷行,遇到空格、標點符才會。
- break-word (不建議使用):效果與
word-break: normal
搭配overflow-wrap: anywhere
相同,並且會忽略overflow-wrap
的設定。
overflow-wrap (word-wrap)
https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap
原本 word-wrap
是微軟的私有屬性,目前標準化統稱為 overflow-wrap
、word-wrap
視為代稱。
此屬性決定斷詞後的結果 overflow 時的處理方式:
- normal:斷行後 overflow 不處理。
- break-word:斷行後 overflow,會再換行;計算最小高度時以單詞為單位。
- anywhere:斷行後 overflow,會再換行;計算最小高度時以單字為單位。目前瀏覽器支援度有限。
延伸閱讀:CSS overflow-wrap新属性值anywhere是干嘛用的?
white-space
https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
如何處理元素中的空白和斷行:
- normal:省略開頭的空白,若句中有連續空格,將其視為一個,overflow 時自動換行。
- nowrap:遇到
<br>
才換行,優先序比word-wrap
更高。 - pre:依原空白字元及排版顯示,overflow 不換行。
- pre-wrap:保留原排版及空白字元,在 overflow 時自動換行。
- pre-line 保留原排版,會合併多餘的空白,overflow 自動換行。
- break-spaces:與
pre-wrap
行為相似,除了:- 會保留行尾空格
- 空格會影響 min-content 及 max-content 的計算
延伸閱讀: