应优先用 表示语义强调(如“真的”),读屏软件会改变语调; 仅用于外文词、术语等无强调含义的斜体场景,且样式更稳定。

用 <i></i> 或 <em></em> 都能显示斜体,但语义不同,选错会导致可访问性问题或样式被意外覆盖。
什么时候该用 <em></em> 而不是 <i></i>
<em></em> 表示“强调”,浏览器和读屏软件会改变语调或加重停顿;<i></i> 仅表示“不同语气或类型”,比如外文词、科技术语、船名等。如果只是想让文字变斜,又没特殊语义,<i></i> 更安全。
- 用户说“我**真的**没改过配置”——用
<em></em>包裹“真的” - 文档里出现
<i>Homo sapiens</i>或<i>git rebase</i>——用<i></i> - CSS 重置了
em的默认样式(比如设成 normal),<em></em>就不斜了;<i></i>更“顽固”
font-style: italic 和 HTML 标签的区别在哪
纯 CSS 控制只影响外观,不带语义;HTML 标签自带语义,且更轻量(不用写 class 或 style)。但 CSS 更灵活:可以只对某段文字的一部分生效,或者配合伪类动态控制。
- 想让所有
<cite></cite>内容斜体?加cite { font-style: italic; }比每个都套<i></i>干净 - 按钮文字临时斜体提示“禁用中”?用 class +
font-style: italic,别动结构 -
font-style: oblique和italic渲染效果可能不同,尤其在非标准字体下,优先用italic
常见错误:斜体没生效的几个原因
不是标签写错了,往往是其他地方悄悄覆盖了它。
立即学习“前端免费学习笔记(深入)”;
- CSS 中写了
i, em { font-style: normal !important; }—— 直接干掉所有斜体 - 父元素设置了
font-style: normal,而子元素没显式重写,继承导致失效 - 用了
<span style="font-style: italic"></span>,但外部 CSS 有更高优先级的选择器把它拉回 normal - 字体本身不支持斜体(比如某些等宽字体),浏览器只能做倾斜模拟(oblique),看起来像但不是真斜体
语义和样式混用是最大隐患:靠 <i></i> 实现图标、靠 <em></em> 实现视觉强调,后续维护时容易误判意图。真要控制样式,就老实用 CSS;要用语义,就选对标签。











