应优先使用语义化标签:<strong>表关键强调,<em>表语气强调,<ins>/<del>表编辑状态,<u>仅用于非文本标注;纯视觉效果须用CSS实现。

别用 <b> 和 <i> 做语义强调,除非你真只想要“加粗”或“斜体”这个视觉效果。现代 HTML 的文本格式化核心是「语义优先」——浏览器默认样式只是副产品,真正重要的是告诉机器(和辅助技术)这段文字的含义。
什么时候该用 <strong> 而不是 <b>
当你想表达「这句话至关重要,漏掉会影响理解」时,选 <strong>。比如警告、法律条款关键句、操作不可逆提示。
-
<strong>会被屏幕阅读器加重语气朗读,<b>不会 - 搜索引擎可能赋予
<strong>内容更高权重(虽非决定性,但有信号作用) - CSS 可统一重置所有
<strong>的样式,而<b>往往要单独处理 - 如果只是为突出品牌名、产品名这类「视觉强调」且无强语义,
<b>更轻量、更准确
<em> 和 <i> 的根本区别在哪
<em> 表示「语气上的强调」,比如反讽、转折、重点重读;<i> 表示「非默认语调的文本类型」,如外文词、术语、船名、思想标题等。
- 写「他
<em>真的</em>没看到通知」——强调“真的”,读法会变 - 写「《
<i>百年孤独</i>」或「<i>Python</i>是一门语言」——这是惯例用法,不是强调 - 滥用
<i>替代<em>会导致语音合成工具误读 - 两者默认都斜体,但语义层不可互换
<ins> 和 <del> 不只是“带下划线/删除线”
它们专用于标记内容的「编辑状态」:新增 vs 删除。不是装饰性样式替代品。
立即学习“前端免费学习笔记(深入)”;
-
<del>会触发部分屏幕阅读器读出「已删除」,<s>不会 - 配合
datetime属性可记录修改时间:<del datetime="2026-09-15"> - 版本对比、法律修订稿、协作编辑场景中,这些标签能被解析工具识别并生成变更摘要
- 纯视觉需求(比如营销文案里的“划掉原价”)应改用 CSS
text-decoration: line-through,避免误导语义
为什么 <u> 现在基本该禁用
HTML5 明确将 <u> 重新定义为「非文本标注」用途(如拼写错误、专有名词、中文专名号),**不再是通用下划线**。
- 过去用
<u>做链接样式?错——链接本就有<a>,且下划线是其默认表现 - 想给普通文本加下划线?用 CSS:
span.underline { text-decoration: underline; } - 只有极少数场景才合法用
<u>:比如标记一段被质疑的表述(需配合class或 ARIA 说明) - 多数浏览器仍渲染
<u>为下划线,但这属于向后兼容,不代表语义正确
初学者最容易忽略的是:格式化标签不是样式开关,而是内容意图的声明。写完一句 <strong>,先问自己——如果去掉所有 CSS,这段话的「信息权重」是否依然成立?如果不是,那就该换标签,或者干脆用 CSS 控制视觉。



















