文本换行异常需协同设置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 的分工:前者管“在哪断词”,后者管“空格、换行符怎么处理、是否允许换行”。两者配合才能精准控制。
它只对连续无空格的字符串(如长英文、数字串、URL)起作用,对正常中文分词影响很小(中文本来就没空格,浏览器默认就可断在字间)。
它决定元素内空白字符(空格、Tab、回车)是否被合并,以及是否允许折行——是换行逻辑的“总开关”。
)单靠一个属性很难治本,多数问题要搭配使用:
word-break: break-all + white-space: normal
word-break: keep-all 防止中英文混排时误断英文词white-space: pre-line(保留换行符,合并其他空白,允许折行)white-space: nowrap
overflow-wrap: break-word 是更语义化的替代方案——只在必要时(单词太长放不下)才断词,比 break-all 更克制。现代项目建议优先用它,再加 word-break: break-word 保底(旧版 Chrome/Safari 兼容)。
基本上就这些。不复杂但容易忽略细节——先看内容类型(纯中文?中英混排?含URL?),再选 white-space 定换行权限,最后用 word-break 或 overflow-wrap 微调断点位置。