原子个数用sub,元素符号、计量系数、括号外基团重复数不用;sup需包裹完整语义单元,如SO₄²⁻、H⁺;CSS重置vertical-align会导致失效;复杂公式应改用MathML或KaTeX。

化学式里哪些数字该套sub,哪些不该
只有原子个数才用sub,元素符号本身、计量系数、括号外基团重复数都**不参与包裹**。常见错误是把整个“CH3CH2OH”当一个下标——浏览器真会把它全压小下沉,但语义完全错乱。
- H2O:正确,仅数字 2 是氢原子个数
- Ca(OH)2:正确,括号整体后紧跟
sub,表示两个 OH 基团 - 2H2 + O2:计量系数 “2” 不加
sub,否则屏幕阅读器读作“下标二 H 下标二” - CH3CH2OH:多个独立下标必须分开包裹,不能合并
数学幂次和离子电荷怎么用sup才不出错
sup必须包裹完整语义单元,不能拆开负号、加号或运算符。Unicode 减号 “−”(U+2212)比 ASCII 短横 “-” 更符合排版规范,尤其在指数中。
- 10−3:推荐写法,减号是指数一部分,且用 Unicode 正确字符
- an+1:整个表达式放
sup内,不是 an+1 - SO42−:先
sub再sup,顺序决定渲染位置;反着写就变成 SO²⁻₄ - H+:电荷上标,不是
sub嵌套sup——<sub>H<sup>+</sup></sub>非法且无意义
为什么sup/sub突然不显示偏移效果
不是标签失效,而是 CSS 重置了默认的vertical-align。Normalize.css、Ant Design、Tailwind 等常把sup和sub的vertical-align设为baseline,视觉上就“消失”了。
- 检查 computed 样式,确认
vertical-align是否仍为super或sub - 避免手动加
style="vertical-align: super",它容易和父级line-height冲突 - 稳妥修复方式:
sup, sub { vertical-align: super; font-size: 0.75em; line-height: 0; } - 别在
sup/sub外层套span再设样式——语义链断裂,复制粘贴时丢失结构
什么时候该停手,换 MathML 或 KaTeX
sub和sup只处理单层、非运算型上下标。一旦涉及分数、根号、求和号∑、积分∫,或需要 aᵢⁿ⁺¹ 这类复合位置(下标在左、上标在右),它们就无能为力了。
立即学习“前端免费学习笔记(深入)”;
-
x<sup>2</sup> + y<sup>2</sup>:没问题 -
<math><msup><mi>x</mi><mn>2</mn></msup></math>:MathML 才能保证跨平台一致渲染 - 想让 ex 中 x 更小、更贴近 e?
sup做不到,KaTeX 的e^{x}才能控制字距与缩放 - SO42− 是边界,但
<msubsup><mi>S</mi><mn>4</mn><mn>2−</mn></msubsup>才真正可控
sub都得独立闭合——少一个结束标签,后面所有文本都会被当成下标内容。



















