在 HTML 中控制文本換行行為,除了 <br> 強制換行,還有針對「寬度不足時自動換行、寬度足夠則單行顯示」的語義化標籤與 CSS 屬性。本文整理最實用的方案,解決長單詞、URL、代碼片段換行難題。
<wbr> 告訴瀏覽器:「這裡可以換行,但不強制換行」。適用於長單詞、URL、代碼中允許斷行的位置。
<p>這是一個超長的URL:https://example.com/very/long/path/that/might/need/to/break<wbr>/at/appropriate<wbr>/places</p>
­ 在需要換行時顯示連字符「-」,不換行時完全隱視。適合多語言環境下的單詞斷行。
<p>超長德文單詞:Donaudampfschifffahrt­selektrizitätenhauptbetriebswerkbauunterbeamtengesellschaft</p>
| 屬性 | 值 | 行為 | 適用場景 |
|---|---|---|---|
word-break |
normal |
依照語言規則斷行(預設) | 一般文本 |
break-all |
任意字符間斷行,不遵循語言規則 | 代碼、ID、連續英文/數字 | |
keep-all |
中日韓文不斷行,僅在空白處斷行 | 中文標題、按鈕文字 | |
overflow-wrap (word-wrap) |
normal |
僅在正常斷行點斷行 | 預設 |
break-word |
單詞過長無法容納時強制斷行 | 防止容器撐破,推薦通用 | |
white-space |
normal |
合併空白,自動換行 | 一般段落 |
nowrap |
不換行,溢出隱藏/滾動 | 單行省略號配合 text-overflow: ellipsis |
|
pre-wrap |
保留空白並自動換行 | 代碼展示、詩歌排版 |
.text-auto-wrap {
word-break: break-all; /* 允許字符級斷行 */
overflow-wrap: break-word; /* 單詞過長強制斷行 */
white-space: normal; /* 自動換行 */
}
<wbr>、­ 標記「可斷行點」。overflow-wrap: break-word 防止容器撐破。word-break: break-all + white-space: pre-wrap。white-space: nowrap + text-overflow: ellipsis 單行省略。根據內容類型選擇適當方案,才能兼顧閱讀體驗與視覺美觀。