不是副标题标签,仅用于附属细则类文本(如版权信息、表单提示),语义上不表示层级;需副标题时应使用等标题标签或css控制视觉效果。

small 不是“副标题”标签,别拿来当 <h2></h2> 用
HTML 中的 <small></small> 和标题语义完全无关,它不表示层级、不参与文档大纲(document outline),屏幕阅读器也不会把它读作“副标题”。强行套用 <small>副标题</small>,结果是:视觉上可能变小,但语义错位、SEO 权重稀释、无障碍支持失效。
真正需要副标题时,该用:
-
<h2></h2>或<h3></h3>(配合正确的层级结构) <div role="heading" aria-level="2">(仅在无法改结构时兜底) <li>CSS 控制字号+语义正确的容器,比如 <code><p class="subtitle"></p>- 页脚版权信息:
<small>© 2024 XXX 版权所有</small> - 表单字段下方格式提示:
<small>密码需包含大小写字母和数字</small> - 禁用按钮旁的说明:
<button disabled>提交</button> <small>请先阅读并勾选用户协议</small> - 用
font-size: 0.875rem/0.75rem等显式值控制 - 避免依赖浏览器 UA stylesheet 的相对缩放(Chrome 默认 80%,Firefox 83%)
- 优先用
rem而非px,保证用户系统缩放设置生效 - 保持语义正确:用
<span></span>、<p></p>、<div> 等中性容器 <li>加 class 控制样式:<code><span class="fine-print">含税价</span> - CSS 写死或继承:
.fine-print { font-size: 0.875rem; color: #666; } - 绝对不要用已废弃的
<font size="1"></font>
small 的合法使用场景只有三类
<small></small> 是 HTML5 明确定义的语义标签,只适用于“附属细则类文本”,浏览器默认缩小只是表现手段,不是设计本意。用错就等于告诉辅助技术:“这段话不重要”,哪怕它其实是关键法律条款。
符合规范的用法包括:
注意:这些内容共同特点是——它们补充主信息、不可省略、有法律或交互约束力,但又不构成主体陈述。
嵌套 <small></small> 不会继续缩小
很多人以为 <small><small>二级说明</small></small> 能实现“更小字号”,实际所有现代浏览器(Chrome/Firefox/Safari/Edge)都按 HTML 规范处理:嵌套 <small></small> 渲染尺寸与单层一致。规范明确写“no cumulative effect”。
如果真需要多级字号差异,必须用 CSS:
想让文字变小?99% 的情况该用 CSS,不是 <small></small>
绝大多数“这里字要小一点”的需求,本质是视觉表达,不是语义分类。比如价格标签、时间戳、标签 badge、卡片 footer 文字——这些都不是“法律细则”,硬套 <small></small> 只会让语义混乱。
正确路径是:
最易被忽略的一点:即使你确认要用 <small></small>,也建议额外加一行 CSS 重置字号,否则不同浏览器下实际大小可能偏差 3%–5%,对排版敏感的 UI 就是明显错位。











