应优先使用语义化标签:强调重要性用<strong>,表达语气重音用<em>;纯视觉样式应交由CSS控制,避免滥用<b>和<i>;同时需兼顾可访问性与兼容性细节。

别用 <b> 和 <i> 做加粗/斜体,除非你明确知道自己在放弃语义。
什么时候该用 <strong> 而不是 <b>
当你想告诉浏览器、搜索引擎、屏幕阅读器“这段文字很重要”,就用 <strong>。比如警告信息、关键操作按钮文案、法律条款中的责任条款。
-
<strong>是语义标签,会被读屏软件加重语气朗读 -
<b>只是视觉加粗,读屏时不会特殊处理 - SEO 会更重视
<strong>包裹的关键词,但权重提升微乎其微,别指望靠它刷排名 - 两者默认样式都是加粗,但你可以用 CSS 单独覆盖其中一种而不影响另一种
什么时候该用 <em> 而不是 <i>
当你想表达说话时的重音或语气转折,就用 <em>。比如“<p>我不是说<em>他</em>偷了钱</p>”——这个“他”是语义重心,不是单纯要斜着显示。
-
<em>支持嵌套:<em>真的<em>非常</em>重要</em>,嵌套层级越多,语气越强(读屏软件会逐层加重) -
<i>适合纯视觉需求:外文术语(<i>et al.</i>)、生物分类名(<i>Homo sapiens</i>)、船名(<i>Titanic</i>),这些本身就不带强调意图 - 别为了“让标题斜一点”而用
<i>,那该用 CSS 的font-style: italic
CSS 方式比 HTML 标签更灵活
如果只是想控制外观,CSS 是唯一合理选择。HTML 标签不该承担样式职责。
立即学习“前端免费学习笔记(深入)”;
- 加粗可用
font-weight: bold,但更推荐数值写法如font-weight: 600或700,避免浏览器对bold解释不一致 - 斜体可用
font-style: italic,注意有些字体没有真正的 italic 变体,浏览器会伪造倾斜(oblique),效果发虚 - 用 class 控制样式,比如
<p class="warning"><span class="highlight">危险操作</span></p>,比混用<strong>和<b>更易维护 - 响应式场景下,你可能希望移动端取消斜体:
@media (max-width: 768px) { .term { font-style: normal; } }
容易被忽略的兼容性和可访问性细节
很多人写了 <strong> 就以为万事大吉,其实还有几个硬伤点没处理:
- 部分旧版 IE 对嵌套
<strong>的渲染异常,建议最多嵌套一层 - 颜色对比度不足时,加粗文字反而更难读(尤其浅灰字+加粗),WCAG 要求文本对比度 ≥ 4.5:1,加粗不能替代对比度
-
<em>在某些语音引擎里会被跳过或误读,测试时务必用真实读屏工具(NVDA / VoiceOver)验证 - 别在
<button>里套<strong>来“强调按钮”,按钮本身已有语义和焦点状态,多余标签反而干扰无障碍流



















