不能。/仅适用于单层、非运算型孤立标记(如x₂、H₂O),遇分数、根号、求和号、上下标嵌套(如aₙ₊₁²)或多行对齐时即失效,且存在语义错乱、解析不可控、无障碍支持缺失等问题。

用 和 能不能排复杂公式?
不能。它们只适合单层、非运算型的孤立标记,比如 x2 或 H2O;一旦涉及分数、根号、求和号、上下标嵌套(如 an+12)、或需要对齐的多行表达式,/ 就会失效甚至语义错乱。
常见错误现象:x2i 渲染为 “x²i”,而非数学上正确的 “xᵢ²”;2 是非法嵌套,HTML 解析器会自动修正结构,结果不可控。
- 浏览器不校验嵌套合法性,但 W3C 验证器会报错
- 屏幕阅读器可能跳过或误读嵌套内容
- 复制到 Word 或 LaTeX 工具时,语义信息丢失
什么时候必须放弃 / 改用 MathML 或 KaTeX?
当公式满足以下任一条件时,应切换技术方案:
- 含分式:
(/无法表达分数线) - 含上下标组合:
ai2是线性序列,而ai2在数学中常需视觉上“i”在右下、“2”在右上,/默认左右并列,无法精确定位 - 需自动缩放:响应式页面中公式随字体缩放失真,MathML/KaTeX 可绑定 CSS 单位或 SVG 渲染
- 要支持语音导航:MathML 提供完整语义树,KaTeX 输出 aria-label 可配置,
只能读作“下标2”
如果硬要用 / 组合,怎么避免踩坑?
仅限极简场景(如单位 m3、索引 xn),且必须遵守三原则:
- 顺序即渲染顺序:
xi2→ 先下标后上标;若需上标在左、下标在右(如 14C),得写成14C,而非C14(语义错误) - 禁止跨字符包裹:
n+1合法(整个是下标),但n+1错误(加号不是下标语义) - 等宽字体环境慎用:
或代码块中,垂直偏移可能偏移异常,建议改用font-variant-position: sub;
示例正确写法:log2(8) = 3(底数 2 是下标,括号与等号是正常文本);错误写法:log2(8) = 3(把整个 “2(8)” 当作下标,语义断裂)。
脚注编号用 ,但为什么不能直接写 1?
因为单独 1 缺少引用关系和可访问性锚点。屏幕阅读器无法知道这个“上标1”对应哪条脚注,也无法跳转。
- 必须配
id:1 - 必须关联内容:
- …
- 推荐加
aria-describedby:1,显式声明描述关系 - 禁用 CSS 模拟:
span[role="note"] { vertical-align: super; }不会被读屏器识别为脚注
真正麻烦的点不在标签本身,而在语义链的完整性——编号、正文引用、脚注容器、返回链接,四者缺一不可。漏掉 role="doc-endnote" 或 aria-describedby,对依赖辅助技术的用户就是断链。











