应优先用语义化标签:<strong>表内容重要,<em>表语气强调,<ins>/<del>带时间语义;避免<b><i><s><u>等纯样式标签,以保障可访问性、SEO及维护性。

<b> 和 <strong> 都能加粗文字,但语义不同——前者纯样式,后者表示内容重要;用错会导致可访问性下降或 SEO 权重丢失。
什么时候该用 <strong> 而不是 <b>
浏览器渲染效果几乎一样,但屏幕阅读器会为 <strong> 加重语气,搜索引擎也更倾向赋予其语义权重。
- 用户警告、错误提示、关键操作按钮文字(如“确认删除”)→ 用
<strong> - 品牌名、产品型号中固定加粗部分(如“iPhone 15 Pro”里的“15”是型号一部分,不强调语义)→ 可用
<b> - 嵌套在段落里时,
<strong>更易被 CSS 统一控制(比如全局禁用加粗只设strong { font-weight: normal; })
<i> 和 <em> 的区别不只是斜体
<em> 表示「强调」,有语音重读和语义强度;<i> 表示「非默认语调的文字」,比如外文术语、船名、生物分类学名。
- “请务必在截止前提交” → “务必”用
<em> - “《The Great Gatsby》出版于1925年” → 书名用
<i> - CSS 中若统一关闭斜体(
i, em { font-style: normal; }),<em>的语义仍保留,而<i>就只剩普通文本了
<ins> 和 <del> 不只是画线,它们自带时间语义
这两个标签原生支持 datetime 属性,可用于标记修改时间,对版本对比、法律文档、协作编辑场景很实用。
立即学习“前端免费学习笔记(深入)”;
<del datetime="2026-09-15">旧价格:¥299</del><ins datetime="2026-10-01">新价格:¥249</ins>- 部分 CMS 或 diff 工具会自动读取
datetime做变更排序 - 避免用
<s>或<u>模拟删除/下划线——它们无语义,也不支持datetime
格式化标签嵌套时的常见断裂点
HTML 允许嵌套,但某些组合在可访问性工具中会被降级处理,尤其是 <strong> 包 <em> 或反过来。
- 推荐顺序:
<strong><em>重点强调</em></strong>(先强后重,逻辑清晰) - 避免:
<em><strong>…</strong></em>—— 多数读屏软件会忽略内层<strong> -
<ins>/<del>内不要放块级元素(如<p>),否则会触发 HTML5 的隐式闭合行为,导致结构意外截断
真正容易被忽略的是:这些标签本身不带默认 margin/padding,但一旦被 CSS 重置(比如 * { margin: 0; padding: 0; }),它们就彻底“隐形”于视觉节奏之外——记得给 strong、em 等加一点行高或上下间距微调,否则密集排版时语义再准也没人感知得到。



















