标签用于无语义强调但需斜体呈现的文本,如命令名、生物分类、外文短语;用于需读屏软件识别的语气或语义强调;误用会损害可访问性与语义结构。

标签不是“加斜体”的快捷键,它是用来标记**无语义强调、但按惯例需斜体呈现**的文本。用错地方,样式可能看着对,可访问性和语义结构已经出问题。
什么时候该用 而不是
关键看内容是否需要被读屏软件识别为“强调”—— 会改变语音重音和停顿, 不会。
- 该用
:git commit(命令名)、Homo sapiens(生物分类)、bon appétit(外文短语) - 该用
:真的不能删(语气强调)、仅限管理员(权限提示) - 不该用
:提交(按钮文字)、错误:404(状态提示)——这些应配合required、aria-live或改用
font-style: italic 失效的常见原因
写了 font-style: italic 却没变斜?大概率不是代码写错,而是字体本身不支持真实斜体字形。
实现 Markdown↔ HTML 互转,支持导出 PDF,用于用户请求的文档格式转换。
- 中文字体如「微软雅黑」「思源黑体」默认没有
italic变体,浏览器只能 fallback 到oblique(机械倾斜),效果生硬甚至失真 - CSS 中写了
i, em { font-style: normal !important; }—— 直接覆盖所有斜体 - 父元素设了
font-style: normal,子元素未显式重写,继承导致失效 - 用了
@font-face但没为font-style: italic单独声明对应字体文件,或src路径不对
中文实现“真正斜体”的实操路径
想让中文也出印刷级斜体,必须引入带 italic 字重的字体文件,不能只靠 CSS 声明。
- 选用已提供完整字重的开源字体,如
Noto Sans SC的 Italic 版本(.woff2 文件) -
@font-face必须成对声明:font-style: normal对应 Regular,font-style: italic对应 Italic,两者font-family名称必须完全一致 - 在使用处显式写
font-style: italic,不能省略;否则浏览器不会触发字形切换 - 避免用
transform: skewX()模拟斜体——它破坏点击热区、影响文本选择,且对辅助技术不可见
最常被忽略的一点:斜体从来不是独立的信息通道。哪怕你用了 、写了 font-style: italic、加载了真实斜体字体,只要没同步加上 aria-required="true"、aria-live="polite" 或显式文案,视力障碍用户就感知不到那个“斜着的必填项”或“斜着的暂无数据”。










