font-smoothing 在现代浏览器基本失效,仅 safari 有限支持但受 macos 系统设置压制;text-rendering 是唯一跨浏览器有效的渲染控制项,推荐中文正文用 optimizelegibility;font-optical-sizing: auto 须配合支持光学尺寸的可变字体才生效。

font-smoothing 在现代浏览器里基本失效,别白费力气写 -webkit-font-smoothing —— Chrome/Edge 110+ 已彻底移除解析,Firefox 从来就不认,只有 Safari 还勉强支持,但还受 macOS 系统字体平滑开关压制。
text-rendering 是唯一跨浏览器有效的控制项
它不“强制平滑”,而是告诉浏览器当前文字的渲染优先级:optimizeLegibility 启用连字和字距调整,适合小字号正文;geometricPrecision 保轮廓精度,适合图表标签;optimizeSpeed 关闭高级渲染,换速度。中文正文推荐用 optimizeLegibility,但要注意它可能轻微拖慢重排。
font-optical-sizing: auto 必须配合可变字体
这个属性只对支持光学尺寸(optical sizing)的字体起作用,比如 Inter、IBM Plex、Source Sans Pro Variable。普通字体(如 Roboto、Open Sans)加了也无效。启用后,不同字号下字干粗细、衬线细节会自动微调,视觉更协调:
body {
font-optical-sizing: auto;
text-rendering: optimizeLegibility;
}
若你用的是 Bootstrap 默认的 system-ui 字体栈,这个属性完全没效果——它不支持光学尺寸。
系统级限制比 CSS 更大:macOS 字体平滑开关
Safari 下文字发虚,大概率不是你 CSS 写错了,而是用户在「系统设置 → 辅助功能 → 显示 → 字体平滑」里关掉了。WebKit 尊重该设置,且没有任何 CSS 能绕过。开发时务必在系统开启前提下测试,上线后也别指望能干预用户系统偏好。
常见错误现象:-webkit-font-smoothing: subpixel-antialiased 在新 Chrome 里开发者工具都看不到声明,却还在反复调权重、加 !important。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











