html5中和未被废弃,但语义已变:表无强调的关键词(如品牌名),表术语或外文词;纯样式应使用css;、等表现型标签已被移除。

HTML5里<b></b>标签没被废弃,但语义变了
很多人以为<b></b>在HTML5中被删了,其实它还在,只是不再表示“加粗”这个纯样式概念,而是表示“不带额外重要性的关键词或短语”。比如产品名、船名、外文词等需要视觉突出但又不强调语气的场景。如果你只是想让文字变粗,用CSS更准确。
-
<b></b>和<strong></strong>都默认渲染为加粗,但语义不同:<strong></strong>表示内容有强重要性,会被读屏器加重朗读;<b></b>则不会 - 旧写法
<b>警告</b>在HTML5中不推荐——这里“警告”明显有强调意图,该用<strong></strong> - 像
<b>iPhone 15</b>这种品牌名突出,反而适合<b></b>,因为不是强调语气,而是区分命名实体
<i></i>同理:没被删,但语义从“斜体”变成“不同语义的文本”
<i></i>现在用于术语、外文词、船名、分类学名等——比如<i>Homo sapiens</i>或<i>c’est la vie</i>。它不再是“让字斜着显示”的快捷方式。如果只是要斜体效果,应该用font-style: italic。
- 错误用法:
<i>重点提醒</i>(这不是术语或外文,该用<em></em>) - 正确用法:
<i>Turing Test</i>(专有名词,无强调意图) -
浏览器仍支持
<i></i>,但W3C校验器会提示“请确认是否符合语义”,尤其在可访问性要求高的项目中
真正被废弃(deprecated)的标签有哪些?
HTML5明确移除了<font></font>、<center></center>、<u></u>(带下划线)、<s></s>(删除线)这些纯表现型标签。它们不能用,也不再被规范支持。
-
<font color="red"></font>→ 改用color: red内联或类名 -
<center>内容</center>→ 改用text-align: center或Flex布局 -
<u>下划线文本</u>→<u></u>虽未完全删除,但仅限拼写错误标注等特殊语义;日常下划线必须用text-decoration: underline
如何快速判断该用语义标签还是CSS?
核心就一条:问自己“这个格式变化是否改变了内容的含义?”
立即学习“前端免费学习笔记(深入)”;
- 是 → 选语义标签:
<strong></strong>(强调重要性)、<em></em>(强调语气)、<mark></mark>(高亮相关文本)、<time></time>(时间语义) - 否 → 用CSS:
font-weight、font-style、background-color等只影响外观的属性 - 混淆高发区:
<b></b>和<strong></strong>、<i></i>和<em></em>——它们视觉效果重叠,但语义不可互换
最容易被忽略的是可访问性影响:屏幕阅读器对<strong></strong>和<em></em>有明确播报行为,而<b></b>和<i></i>只是静默渲染。如果你的项目要过WCAG 2.1 AA标准,语义错用会直接导致失败。











