<strong>表示内容高重要性(如警告),<em>表示语气强调(如重音),二者是语义标签而非样式快捷键,用错会损害可访问性与SEO。

<strong> 和 <em> 是语义化强调标签,不是“加粗”和“斜体”的快捷方式;用错会削弱可访问性与 SEO 效果。
标题与段落:结构不能乱
标题必须按层级连续使用:<h1> → <h2> → <h3>,跳级(比如 <h1> 后直接 <h3>)会让屏幕阅读器困惑,也影响搜索引擎对内容主次的判断。
<p> 是语义化的段落容器,不是换行工具。强行用多个 <p> 去“空行”或“对齐”,不如用 CSS 控制 margin;它默认有上下间距,且是块级元素,天然独占一行。
- 一个页面只应有一个
<h1>(通常是主标题) -
<h2>用于一级内容区块,<h3>用于其子模块,以此类推 - 不要用
<br>替代<p>—— 它只是强制换行,不表达任何语义
<strong> 和 <em>:不只是视觉效果
这两个标签传达的是语气和重要性,不是样式开关。浏览器默认渲染为加粗/斜体,但那只是表现层;真正关键的是它们会被读屏软件识别为“强调”或“重音”,影响信息传递节奏。
立即学习“前端免费学习笔记(深入)”;
-
<strong>表示内容具有高重要性或紧急性(如警告、必填项说明) -
<em>表示语气上的强调(如“我不是说你错了,而是说你可能漏看了”) - 避免用
<b>或<i>替代——它们纯属视觉标签,无语义,现代 HTML5 中已降级为“另有用途”(比如<i>可用于图标字体或外文术语)
删除、插入与高亮:内容变更要可追溯
<del>、<ins> 和 <mark> 都带明确语义,适合版本对比、编辑留痕或内容标注场景。
-
<del>表示已被移除的内容(常配合datetime属性记录时间) -
<ins>表示新增内容,浏览器通常加下划线,但重点是它告诉辅助技术“这里加了新东西” -
<mark>不是“高亮颜色”工具,而是标记与当前上下文相关的关键片段(如搜索结果中的关键词匹配) - 别用
<u>模拟<ins>——<u>默认语义是“非标准文本”(如拼写错误、专有名词),滥用会误导
小号文本、上标与代码:别忽略默认语义
像 <small>、<sup>、<sub>、<code> 这些标签,浏览器渲染效果有限,但语义固定且不可替代。
-
<small>应用于免责声明、版权信息等次要内容,不是“缩小字体”的通用手段 -
<sup>和<sub>专用于数学/化学式(如 H2O、x2),用错会影响可访问性解析 -
<code>必须包裹真实代码片段,不能用来“让文字变等宽”——那是<pre>+ CSS 的事 - 所有这些标签都是内联元素,嵌套在段落或标题中完全合法,无需额外包裹
<span>
最常被忽略的一点:语义标签一旦用错,修复成本远高于初期选对。比如把 <strong> 当样式开关用了,后期想加无障碍支持或做内容抽取时,就得逐个手动校验——而这类问题在 DOM 结构里根本看不出来。



















