文本换行异常需协同设置word-break与white-space:前者控制断词位置(normal/ break-all/keep-all),后者决定空白处理与换行权限(normal/nowrap/pre/pre-wrap);长URL用break-all+normal,中英混排防误断用keep-all,预设换行用pre-line,优先选overflow-wrap:break-word保兼容。

文本换行异常,通常是因为浏览器默认的换行规则和你的预期不一致——比如长英文单词、超长URL或中文混排时突然断行或完全不换行。关键在于理清 word-break 和 white-space 的分工:前者管“在哪断词”,后者管“空格、换行符怎么处理、是否允许换行”。两者配合才能精准控制。
word-break 决定“能不能在单词中间断”
它只对连续无空格的字符串(如长英文、数字串、URL)起作用,对正常中文分词影响很小(中文本来就没空格,浏览器默认就可断在字间)。
- word-break: normal:按语言规则断,英文不断词,中文可断字
- word-break: break-all:强制断,哪怕把 “dashboard” 断成 “dash-” 和 “board”,适合容器极窄又必须塞下的场景(如表格窄列)
- word-break: keep-all:中文不断字,英文也不断词——容易溢出,慎用;适合中英混合但要求严格保留英文词形的场合(如技术文档)
white-space 控制“空格、换行符是否生效,是否允许换行”
它决定元素内空白字符(空格、Tab、回车)是否被合并,以及是否允许折行——是换行逻辑的“总开关”。
- white-space: normal(默认):合并空白,允许换行,遵循 word-break 规则
- white-space: nowrap:合并空白,禁止换行——整段文字会撑宽容器,常用于导航菜单项
-
white-space: pre:保留所有空白和换行符,不自动换行(类似
) - white-space: pre-wrap:保留空白和换行符,同时允许自动换行——适合展示带格式的用户输入(如评论、日志)
常见异常场景与修复组合
单靠一个属性很难治本,多数问题要搭配使用:
立即学习“前端免费学习笔记(深入)”;
-
长URL/哈希值溢出容器:用
word-break: break-all+white-space: normal -
中文标题里英文单词被奇怪截断(如“React组件”断成“React组”+“件”):改用
word-break: keep-all防止中英文混排时误断英文词 -
预设文案有换行但页面不显示:用
white-space: pre-line(保留换行符,合并其他空白,允许折行) -
卡片内文字全部挤在一行不换行:检查是否父级或自身误设了
white-space: nowrap
别忘了 overflow-wrap(兼容性更稳)
overflow-wrap: break-word 是更语义化的替代方案——只在必要时(单词太长放不下)才断词,比 break-all 更克制。现代项目建议优先用它,再加 word-break: break-word 保底(旧版 Chrome/Safari 兼容)。
基本上就这些。不复杂但容易忽略细节——先看内容类型(纯中文?中英混排?含URL?),再选 white-space 定换行权限,最后用 word-break 或 overflow-wrap 微调断点位置。











