使用word-wrap和white-space属性可实现HTML文本自动换行,1. word-wrap: break-word强制长单词断行;2. white-space: pre-wrap保留换行符并允许自动换行;3. 推荐组合使用word-wrap、overflow-wrap和pre-wrap处理用户输入内容,避免布局溢出。

在HTML中实现文本自动换行,主要依靠CSS的 word-wrap(现为 overflow-wrap)和 white-space 属性。通过合理设置这两个属性,可以让长单词或连续字符(如URL)在超出容器时自动换行,避免内容溢出。
1. 使用 word-wrap: break-word 实现长单词换行
当一段文本包含特别长的单词或一串无空格字符(如网址),默认情况下它可能不会换行,导致溢出父容器。使用 word-wrap: break-word 可强制在必要时断行。
示例代码:
效果:即使单词中间没有空格,也会在到达容器边界时自动断开换行。
立即学习“前端免费学习笔记(深入)”;
2. white-space 控制空白符和换行行为
white-space 属性决定如何处理元素内的空白、换行和制表符。常用值包括:
- normal:合并空白和换行,允许自动换行(默认行为)
- nowrap:不换行,所有空白合并成一个空格
- pre:保留空白和换行,类似 pre 标签
- pre-wrap:保留空白和换行,同时允许自动换行
- pre-line:合并空白,但保留换行符并允许自动换行
若希望保留文本中的回车换行并支持自动折行,推荐使用:
white-space: pre-wrap;
3. 综合设置建议(适用于文章、评论等场景)
为了兼顾可读性与布局安全,推荐以下CSS组合:
.text-container {
width: 300px;
word-wrap: break-word;
word-break: break-word;
white-space: pre-wrap;
overflow-wrap: break-word;
}
说明:
- word-wrap: break-word 和 overflow-wrap: break-word 是同义写法,兼容旧浏览器用前者
- word-break: break-word 非标准,慎用;更推荐 word-break: break-all 在极端情况下使用
- pre-wrap 能保留用户输入的换行,适合评论、留言等场景
4. 实际应用场景举例
例如,在显示用户输入的评论时,希望保留换行且防止长链接撑破布局:
这是一段用户留言: https://this.is.a.very.long.url.that.should.wrap.properly.without.breaking.layout
加上如下样式即可正常显示:
white-space: pre-wrap;
word-wrap: break-word;
基本上就这些。掌握 word-wrap 和 white-space 的搭配使用,就能灵活控制HTML文本的换行行为,避免布局错乱。不复杂但容易忽略细节。











