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

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











