只有在同一语义块内需手动断行时才用,如地址、诗歌;用于语义分段,滥用会破坏结构、影响可访问性和CSS控制。

什么时候该用
,而不是
只有在**同一语义块内需要手动断行**时才用 。比如地址、诗歌、表单提示这类内容,逻辑上是一段,但视觉上必须分多行显示。 是语义化分段,自带上下间距和可访问性支持;滥用 替代 会导致结构松散、屏幕阅读器误读、后续 CSS 难以统一控制。
- ✅ 合理场景:
<p>北京市朝阳区建国路8号<br>邮编:100022</p>
- ❌ 错误写法:
—— 这该用两个第一段内容
第二段内容 - ⚠️ 注意:
是空元素,必须写成自闭合形式:或,不能写
不生效?先查这三处 CSS 干预
看起来没换行,大概率不是标签写错了,而是父容器的 CSS 把它“压平”了。
-
white-space: nowrap:哪怕写了,整行不溢出就不会视觉换行(实际 DOM 已换,只是没位移) -
display: flex(默认flex-direction: row):文本流换行被 Flex 布局接管,失效;改用flex-direction: column或换为+display: block- 某些 CSS 重置库(如 old normalize.css)可能给
加了margin: 0,但标准行为本就不带 margin,所以不是问题,只是你预期有空白——别依赖它出间距动态插入换行:JS 拼字符串不如 CSS 控制
后端返回带
\n的字符串(如地址、日志),别用 JS 拆成数组再拼一堆—— 容易 XSS,也难维护。- ✅ 推荐做法:用
white-space: pre-line+ 原始字符串直接赋值innerHTML - ❌ 避免:
text.split('\n').map(line => `<span>${line}</span><br>`).join('') - ⚠️ 如果必须用 JS 插入,确保对用户输入做 HTML 转义,或用
textContent+appendChild(document.createElement('br'))更安全
比
更靠谱的换行替代方案真正需要
的场景其实很少。多数所谓“换行需求”,本质是排版控制问题,CSS 才是正解。- 想保留源码中的回车换行?用
或white-space: pre-line - 长 URL / 单词撑破容器?加
overflow-wrap: break-word或word-break: break-all - 多行文本垂直居中?别靠堆
,用display: flex; align-items: center; flex-direction: column - 表格内换行?用
table-layout: fixed+word-wrap: break-word,不是塞
一旦发现页面里
超过 3 个,基本说明语义结构或 CSS 规则没理清——这时候该重构,不是补更多。 - 某些 CSS 重置库(如 old normalize.css)可能给
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











