应优先用 <i> 表示术语、外来词等无强调含义的斜体内容,因其语义明确、视觉稳定;仅当需语义强调时才用 <em>;纯样式需求应交由 CSS 控制。

直接写法:`
` 里套 `` 没问题,但得闭合
标准写法就是把 `` 放进 `
` 的开始和结束标签之间,比如:<p>这是一段<i>斜体</i>文字。</p>。浏览器会正常渲染,语义上也合理——`` 表示术语、外来词等无强调含义的斜体内容,`
` 是段落容器,二者层级兼容。
-
<i>必须成对出现,漏掉</i>会导致后续 HTML 解析错乱(尤其在复杂嵌套或 CMS 输出中) - 不要写成
<p><i>斜体<p>新段落</i></p>——<p>是块级元素,不能放在<i>里面,也不该跨层闭合 -
<i>可以嵌套其他行内标签,比如<i>git <code>rebase</code> 操作</i>,但别塞<div>或<p>
为什么不用 `` 替代 ``?看语义需求
如果目标只是让文字“看起来斜”,且没有强调语气(比如“**真的**没改”里的“真的”),就别用 ``。`` 是语义化强调,屏幕阅读器会加重读音或加停顿;而 `` 在 HTML5 中明确定义为“不同语气或类型”的文本,例如: 写了 ` 文字 如果只是为了视觉效果(比如按钮禁用状态加斜体提示),直接加 class 更干净:<i>Homo sapiens</i>、<i>TCP/IP</i>、<i>café</i>。
<em> 被 CSS 重置为 font-style: normal 后可能完全不斜,而 <i> 更“顽固”,默认样式更难被意外覆盖em { font-style: italic; },但不会动 <i> 的默认行为,所以视觉一致性上 <i> 更可靠斜体没显示?先查这三处地方
i, em { font-style: normal !important; } —— 直接干掉所有斜体font-style: normal,而 <i> 没做显式覆盖(斜体依赖继承+自身声明)font-style: oblique,效果像倾斜而非真正斜体,肉眼可能觉得“不够斜”现代项目里更推荐用 CSS 控制斜体
<p class="hint">操作已禁用</p>,然后配 CSS:.hint { font-style: italic; }。
<i> 承担纯样式职责,否则后期想统一调整斜体逻辑时,得满代码库搜 <i> 标签,而不是只改一个 class<i> 在 HTML5 中已不是“斜体标签”,而是“文本偏移标记”,语义优先级高于样式;真要控制外观,CSS 才是正解<i aria-hidden="true"> 用来放图标字体(虽然现在更常用 <span> + class),这时 <i> 是历史惯例,不是为了斜体效果<i> 标签本身很简单,难的是判断它该不该出现——不是“能不能用”,而是“该不该用”。语义错位比样式失效更难调试。



















