用于语义化分段,仅用于强制换行;前者自带margin、支持无障碍和seo,后者无语义、无间距、不可样式化,严禁混用。

直接说结论:<p></p> 用于语义化分段,<br> 仅用于强制换行——两者不能混用,否则结构混乱、可访问性差、SEO 受损。
什么时候必须用 <p></p> 标签
当你有一段完整、独立、有逻辑边界的文字(比如一句话、一段说明、一个观点),就该用 <p></p> 包裹。浏览器会自动处理内部空格和换行,只保留一个空格;段落之间默认有上下 margin。
常见错误现象:把整页文案全塞进一个 <p></p> 里,靠手动敲 <br> 换行,结果语义丢失、屏幕阅读器无法正确停顿、CSS 调整段间距失效。
- 每段内容应单独包裹在一对
<p></p>中,不要嵌套 -
<p></p>内部禁止出现块级元素(如另一个<p></p>、<div>) <li>如果某“段”里含链接、强调词等,可合法嵌入 <code><a></a>、<strong></strong>等行内标签 - 只在
<p></p>、<div>、<code><span></span>等容器内部使用,不可单独存在 - HTML5 中写成
<br>即可,不用<br> - 连续多个
<br>往往是设计缺陷,优先考虑用 CSS 的margin或padding控制间距 - 想让“张三\n李四\n王五”垂直排列且保持语义 → 用三个
<p></p>,不是<p>张三<br>李四<br>王五</p> - 想在地址中换行(如“北京市朝阳区\n建国路8号”)→ 用
<p>北京市朝阳区<br>建国路8号</p> - 想显示多个连续空格 → 用
,不是敲空格 - 想显示
或 <code>>字符 → 用<和>,不是直接写
什么时候只能用 <br>
<br> 是空标签,不带语义,唯一作用就是「在不打断段落语义的前提下换一行」。典型场景:地址、诗歌、歌词、签名档。
错误用法示例:<p>第一行<br>第二行<br>第三行</p> —— 这不是三行文本,而是一段含两个换行符的文本,对搜索引擎和辅助技术毫无意义。
<p></p> 和 <br> 在渲染行为上的关键差异
你写的换行和空格,在 HTML 源码里看着分明,但浏览器默认全部压缩:多空格变一空格,回车变空格,<p></p> 内部的换行不会渲染为视觉换行。
所以:
容易被忽略的兼容与可访问性细节
<p></p> 是语义块级标签,会被屏幕阅读器识别为独立段落单元,自动插入停顿;<br> 则完全静默,读屏时不会停顿,连续多个 <br> 会导致语音粘连。
CSS 重置时,很多人直接设 p { margin: 0; },却忘了 <br> 不受 margin 影响,此时若依赖 <br> 分隔内容,视觉和语音都会失去节奏感。
现代项目中,<font></font> 已废弃,样式必须用 CSS 控制;<center></center> 同理,居中请用 text-align 或 Flexbox。











