font-size-adjust 几乎无法在实际项目中用于跨浏览器字体排版优化——它仅 Firefox 稳定支持,Chrome 自 127 版起移除实验支持,Safari 完全忽略,Edge 同步 Chromium 策略;其设计目标是通过 x-height 缩放维持后备字体视觉一致性,但因系统字体 aspect 值未标准化、中文字体无稳定值且主流浏览器不执行计算而失效;更可行的替代方案包括固定 line-height、禁用 font-optical-sizing、限定同类字体栈及使用 ascent-override/descent-override。

font-size-adjust 几乎无法在实际项目中用于跨浏览器字体排版优化——它只在 Firefox 中稳定生效,Chrome 和 Safari 均不支持(截至 2026 年 6 月)。
font-size-adjust 的真实支持范围
该属性的浏览器兼容性极差:
- Firefox 自 3.0 起完整支持,
font-size-adjust: 0.58可正常触发 x-height 缩放计算 - Chrome 曾在 43–126 版本间作为实验特性存在,需手动开启
chrome://flags/#enable-experimental-web-platform-features,但自 127 版本起已移除该实验开关 - Safari 完全忽略该属性,
font-size-adjust声明会被解析但无任何效果 - Edge(基于 Chromium)同步 Chrome 策略,当前版本(126+)已不支持
它想解决什么,又为什么失效
font-size-adjust 的设计目标是:当首选字体(如 'Inter')不可用时,让后备字体(如 system-ui)按相同 x-height 渲染,公式为 c = (a / a') * s。但问题在于:
- 它依赖浏览器知道后备字体的
aspect value(x-height / font-size),而系统字体的 aspect 值未标准化,各平台差异大(macOS San Francisco vs Windows Segoe UI) - 中文字体几乎不参与该机制——主流中文字体(如 Noto Sans CJK、PingFang SC)没有公开、稳定的 aspect 值,且浏览器不主动测量
- 即使数值可得,Safari 和 Chrome 不执行计算,导致 fallback 时字号突变,布局抖动照旧
比 font-size-adjust 更可行的替代方案
放弃依赖该属性,转向实测可控的手段:
立即学习“前端免费学习笔记(深入)”;
- 用
line-height: 1.5(无单位)固定行高基准,避免因字体 metrics 差异引发的行高重算 - 对关键文本容器加
font-optical-sizing: none,禁用光学缩放干扰(尤其影响小字号下的字形比例) - 后备字体栈严格限定同类字体族,例如
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif,避免混用衬线/无衬线造成 baseline 偏移 - 若必须控制基线,优先使用 Chrome 125+ 支持的
ascent-override和descent-override,它们直接覆盖字体度量,不依赖浏览器推测
真正容易被忽略的是:font-size-adjust 不是“字体适配开关”,它只是 CSS 字体度量体系中一个未被广泛实现的补丁。在生产环境里,把它写进样式表等于默认放弃 Chrome 和 Safari 用户的排版一致性。


















