<p>是语义化段落容器,自带默认间距、可CSS控制、支持SEO与无障碍;<br>仅强制换行无语义,仅适用于地址、诗歌等同段内需保留换行的场景,不可替代<p>。

直接用 <p> 包段落,别用 <br> 拼凑;标题必须按 <h1> 到 <h6> 逐级降序,跳级会破坏语义和 SEO。
为什么 <p> 不能被 <br> 替代
浏览器把连续换行、空格全压成一个空格,<br> 只是强制换行,不产生段落语义。屏幕阅读器不会把它当段落读,搜索引擎也不认为这是内容分块。
-
<p>自带上下 margin,视觉上自然分隔,且可被 CSS 精确控制(如margin-block) -
<br>适合地址、诗歌、签名等需保留换行但无段落含义的场景,比如北京市朝阳区<br>建国路8号
- 用多个
<br>模拟段落间距,会导致响应式断点下错位、缩放时行距失控
<strong> 和 <em> 不是 <b> 与 <i> 的别名
前者表达语义:强调重要性(<strong>)或语气变化(<em>),后者只是样式指令。辅助技术依赖前者播报重音或停顿,而 <b> 和 <i> 在无障碍中常被忽略。
- 密码提示写
<strong>必须包含大小写字母和数字</strong>,不是<b> - “据说他‘可能’迟到” 中的
可能应用<em>,表示语气强调,而非单纯斜体 - CSS 可覆盖默认渲染(比如让
<strong>显示为红色加下划线),但语义层不能妥协
<pre> 和 <code> 的分工必须明确
<pre> 保留所有空白符和换行,适合整段代码块;<code> 是行内代码标识,只包裹单个函数、变量或命令,不处理格式。
立即学习“前端免费学习笔记(深入)”;
- 展示函数定义用
<pre><code>function foo() { ... }</code></pre></li> <li>文中提到 <code>console.log()或useState,就只包一层<code> - 误用
<pre>包单个词会导致多余缩进、字体过大、无法折行,破坏段落流 -
<pre>默认等宽字体,若需支持中文对齐,CSS 中要设font-family: 'SFMono-Regular', Consolas, monospace
<blockquote> 不是“加引号的段落”
它专指**引用外部来源的内容**,有明确语义边界。浏览器默认缩进+左竖线,但更关键的是它向辅助工具和搜索引擎传递“这段文字非原创”的信号。
- 引用论文原文、API 文档说明、他人评论,才用
<blockquote> - 自己写的“温馨提示”“注意事项”,哪怕加了引号,也该用
<p>+ CSS 样式,或<aside> - 嵌套引用时,内部可用
<q>表示短引,避免多层<blockquote>堆叠导致结构混乱 - 必须配
cite属性或<footer>子元素标明出处,否则语义残缺
最易被忽略的是标题层级断裂和 <pre> 的滥用——前者让整页内容在无障碍浏览中变成一整块不可导航文本,后者让行内代码在窄屏上直接溢出容器。语义不是“看起来像”,而是“机器能读懂”。



















