HTML中没有\_SUP标签,它不是标准标签;应使用语义化且浏览器原生支持的标签实现上标,注意避免嵌套、兼顾无障碍与脚注交互。

HTML 中没有 _SUP 标签,别被名字骗了
浏览器根本不认识 _SUP —— 这不是 HTML 标准标签,也不是任何主流框架的内置语法。如果你在某处看到它被渲染成上标,大概率是某个富文本编辑器(比如早期的 TinyMCE 或自定义解析器)自己实现的私有标记,或者后端模板做了字符串替换。直接写进 HTML 文件里,_SUP 就是普通文本,不会变小、不会上移。
用标准 <sup></sup> 实现次方和脚注最稳妥
<sup></sup> 是 HTML5 正式支持的语义化标签,专用于上标内容,浏览器原生支持,无需 JS 或 CSS 补救。
常见用法:
- 数学次方:
2<sup>3</sup>→ 2³ - 化学式:
H<sup>+</sup>→ H⁺ - 脚注编号:
用户协议<sup>1</sup>,再配合页面底部的<ol><li>…</li></ol>
注意:不要嵌套 <sup></sup>(比如 <sup><sup>x</sup></sup>),多数浏览器不支持多层上标,视觉会错乱,语义也失效。
CSS vertical-align: super 是备选,但慎用
当需要更精细控制(比如调整上标高度、字号比例),可以用 CSS 模拟:
<span style="vertical-align: super; font-size: 0.7em;">3</span>
但要注意:
-
vertical-align: super的偏移量由浏览器决定,不同引擎(WebKit/Gecko/Chromium)表现不一致 - 没有语义,屏幕阅读器不会将其识别为上标,对无障碍不友好
- 如果父元素行高过小,上标文字可能被裁切
- 和
<sup></sup>混用时容易样式冲突,建议二选一,别叠加
脚注场景下,光靠 <sup></sup> 不够,得配 ID 和跳转
纯视觉上标只是第一步。真正可用的脚注需要可点击、可返回、支持键盘导航:
- 链接到目标:
<a href="#footnote-1"><sup>1</sup></a> - 对应锚点:
<div id="footnote-1" class="footnote"><p>这是脚注内容…</p></div> - 加回链提升体验:
<a href="#ref-1">↩</a>放在脚注末尾
如果项目已用 Markdown,注意多数解析器(如 marked、remark)默认把 ^1 转成 <sup>1</sup>,但不生成脚注内容——得配插件(如 markdown-it-footnote)或手动补全 DOM 结构。
真正麻烦的从来不是怎么“显示”上标,而是怎么让上标在数学表达、可访问性、打印样式、响应式缩放中都保持正确位置和语义。别为了省几字符去造轮子,<sup></sup> 就是答案,只是得用对地方。


















