em用于语义强调,告诉辅助技术“此处需重读”,如反讽、对比、情绪表达;i仅标识特殊文本类型,如外文词、术语、船名、内心独白,无语气强调功能。

em 和 都渲染为斜体,但语义完全不同:用错不会影响显示,却会让读屏软件读错重点、让搜索引擎降权关键信息。
什么时候必须用 em?
只在需要传递「语气强调」时使用:em 告诉浏览器和辅助技术:“这个词被说话人刻意重读了”。
- 反讽或意外转折,比如
<em>真</em>是太棒了(语音会加重“真”) - 对比强调,比如 “不是
<em>快</em>,而是<em>准</em>” - 情绪张力表达,比如 “我
<em>真的</em>没看到通知”
嵌套 em 是合法的,比如 <em>你</em>说<em><em>真的</em></em>?,第二层会进一步强化语气——但别滥用,三层以上反而干扰理解。
什么时候该用 i?
i 不是“斜体快捷键”,它是为特定文本类型打标签的:内容本身就不属于主叙述流,也不需要被重读。
- 外文词或短语,比如
<i>c’est la vie</i> - 科技术语首次出现,比如
<i>transformer</i> 架构 - 船名、飞机名、作品名,比如
<i>Titanic</i>或<i>Inception</i> - 小说中人物内心独白,比如
她想:<i>他怎么会在这里?</i>
注意:i 里不能塞强调性副词(如“非常”“绝对”),那属于语气范畴,该用 em。
常见错误与兼容性陷阱
老浏览器、某些 CMS 导出工具或静态站点生成器可能把两者都当纯样式处理,导致语义丢失。真正出问题的场景往往滞后:
- 读屏软件平读
<i>真的</i>很好吃,完全听不出反讽 - SEO 工具忽略
i内容的权重,而把em当作页面关键词信号 - 自动化内容摘要系统把
i标记的内容归类为“非核心信息”,直接过滤掉 - 团队协作中,QA 用 axe 或 Lighthouse 扫描时,
i用于强调会被标为 WCAG 1.3.1 违规
别为了统一 CSS 而全用 i 再加 class 强行覆盖——语义一旦丢掉,补救成本远高于写代码时多敲两个字母。
怎么快速判断该选哪个?
问自己一个问题:如果这段文字被朗读出来,是否需要改变语调、停顿或音高?
- 是 → 用
em - 否 → 看它是否属于术语、外文、船名、内心活动等特殊文本类型 → 是则用
i,否则考虑用 CSS 控制样式
最常被忽略的一点:HTML5 规范里,em 和 i 的分工是强制性的,不是建议。它们不共享语义,也不能靠样式“假装”对方。










