<font> 标签的 size 属性已废弃,不合规且渲染不可控;应改用 font-size: 16px 等 CSS 像素值实现真正绝对尺寸,并注意 transform 缩放影响实际显示。

<font> 标签的 size 属性早已被废弃,现代浏览器虽可能渲染,但不保证行为一致,且完全不符合 HTML5 规范。别用它控制文字大小——这不是兼容性问题,是根本不该走的路。
为什么不能用 <font size="4">
这个属性依赖浏览器内置的七级字号映射(1–7),其中 size="3" 对应默认(通常 16px),但:
- size="4" 在不同浏览器或用户自定义字体设置下可能渲染为 18px、19px 甚至 20px
- 它无法与 CSS 的 font-size 级联,也不继承、不参与层叠计算
- 所有主流框架、构建工具(Vite、Webpack、Next.js)在 HTML 检查阶段就会警告或报错
- W3C 自 HTML 4.01 起就标记为 deprecated,HTML5 中彻底移除
替代方案:用 font-size 实现真正“绝对”尺寸
所谓“绝对”,是指像素值固定、不随父元素缩放——这只能靠 px 单位实现:
- font-size: 16px; 就是 16 像素,不因 html 或 body 的 font-size 改变而变化
- 它支持所有现代浏览器,包括 Safari 13+、Chrome 120+、Firefox 115+
- 注意:iOS Safari 在双击缩放后可能强制放大文本,此时需加 -webkit-text-size-adjust: 100%; 阻断(仅限移动端)
- 不要写 font-size: 16; ——漏单位会导致整个声明无效
哪些场景真需要“绝对”而非“相对”
不是所有固定尺寸都该用 px,但以下情况合理:
- 图标旁的微文案(如“12px”的 badge 数字)
- 表格内紧凑数据列(如日志时间戳 11px)
- 按钮内文字(需与高度严格对齐,如 14px 配 32px 高度)
- 打印样式表(@media print 中用 pt 更稳妥,如 font-size: 12pt;)
- 避免:正文段落、标题层级、响应式容器内的文字——这些用 rem 或 clamp() 更合适
真正容易被忽略的点是继承链:即使你写了 font-size: 16px;,如果父元素设置了 transform: scale(0.9),视觉上文字仍会变小——font-size 是逻辑尺寸,不是最终渲染像素。要验证实际大小,得看 DevTools 的 Computed 面板里 “Actual size” 这一行。

















