在 Web 排版中,文本容器经常遇到内容溢出或无法按预期换行的问题。CSS 提供了多个控制换行的属性,其中 word-break 与 white-space 最容易混淆,但它们作用的层面完全不同。white-space 主要管理空白字符处理和容器自动换行的开关,word-break 则专注单词内部的断行策略。理解这两个属性的取值含义与组合效果,是写出稳定排版样式的基础。

white-space 属性解读
white-space 属性用来设置元素内空白符的处理方式,以及是否允许文本在容器内自动换行。它的取值包括 normal、nowrap、pre、pre-wrap、pre-line 等。默认值是 normal,此时浏览器会合并连续空白符,并且根据容器宽度自动在单词间换行。
当设置为 nowrap 时,文本永远不会自动换行,所有内容会排在一行,直到遇到显式的换行符或块级元素。这个值常用于导航条不换行、标题单行省略等场景。而 pre 系列则保留源码中的空格与换行,类似 HTML 的 <pre> 标签行为,其中 pre-wrap 允许在保留格式的同时自动折行,pre-line 仅保留换行符但合并空格并允许折行。
/* 禁止自动换行,文本单行显示 */
.nowrap-text {
white-space: nowrap;
}
/* 保留空格与换行,且可自动折行 */
.pre-wrap-text {
white-space: pre-wrap;
}
从表现上看,white-space 更像是一个“总开关”,它先决定了文本能不能换行,再决定空白怎么显示。如果 white-space 设成了 nowrap,那么后续无论 word-break 怎么设置,文本都不会在单词间断行,只会溢出或靠滚动条查看。
word-break 属性解读
word-break 控制单词在何处可以断开换行,尤其针对那些没有自然空格分隔的连续字符串,比如超长英文单词、数字串或 URL。常用取值有 normal、break-all、keep-all。normal 遵循浏览器默认规则,一般在空格处换行,单词内部不断开。
break-all 允许在任意字符间断行,哪怕是一个完整英文单词也会被拆开,适合处理用户生成内容中可能存在的超长无空格字符串。keep-all 则用于中日韩文字,要求词内不换行,类似英文单词的处理逻辑。下面的代码展示了如何防止长串字符撑破布局:
/* 允许任意位置断词,防止溢出 */
.break-all-text {
word-break: break-all;
}
/* 中日韩文本词内不换行 */
.keep-all-text {
word-break: keep-all;
}
需要注意的是,word-break 只在 white-space 允许换行的前提下生效。如果外层已经 nowrap,word-break 毫无用武之地。因此二者是配合关系,而非替代关系。
二者组合与典型场景
实际项目中,中英文混排且包含长链接时,推荐 white-space: normal 配合 word-break: break-all,这样普通段落正常折行,异常长串也能断开。若做代码展示块,可用 white-space: pre-wrap 加 word-break: break-all,既保留缩进又防溢出。
下表列出常见组合效果:
| white-space | word-break | 表现 |
|---|---|---|
| normal | normal | 空格处换行,长单词溢出 |
| normal | break-all | 任意位置断行,不溢出 |
| nowrap | break-all | 不换行,内容单行溢出 |
| pre-wrap | break-all | 保留格式且长串断开 |
通过合理组合,可以覆盖绝大多数排版需求。建议调试时先用开发者工具观察计算样式,确认 white-space 没有意外继承 nowrap,再调整 word-break 取值。
常见误区与排查
不少布局错乱源于父级设置了 white-space: nowrap,子元素怎么加 word-break 都无效。此时应优先检查继承链,而不是反复修改断词属性。另外,word-break: keep-all 在英文下几乎等同于 normal,不要指望它阻止英文换行。
还有一个坑是移动端浏览器对 break-all 的支持差异,部分旧版本 WebView 对超长数字串仍不换行。此时可辅以 overflow-wrap: anywhere 做兼容,它专门处理过长文本溢出,与 word-break 互补。示例:
.mixed-text {
white-space: normal;
word-break: break-all;
overflow-wrap: anywhere;
}
掌握这些细节后,就能针对具体容器精准控制换行行为,让排版既美观又健壮。
word-breakwhite-spacecss_wrap修改时间:2026-08-02 23:15:30