font-feature-settings是css属性,非编辑器功能;生效需满足三条件:字体文件自带特性、@font-face正确加载、css写法规范(如"liga" 1而非"liga" on)。

font-feature-settings 不是编辑器功能,它只是 CSS 属性——你在 HTML 编辑器里写对了代码,浏览器渲染时才起作用。只要编辑器支持普通 CSS 输入(VS Code、WebStorm、甚至记事本都行),就能用,关键在写法是否正确、字体是否支持、加载是否完整。
为什么写了 font-feature-settings 却没变化?
这不是编辑器的问题,而是链路断在了三处:
- 你加载的字体文件本身没打包该特性:比如 Google Fonts 上的默认
Roboto不含dlig或ss01,写了也静默忽略 -
@font-face没声明对应特性支持:某些厂商会把cvXX或高级ssXX从 WOFF 版本里裁掉,必须用 WOFF2 且确认 release notes - CSS 写法非法:
"liga" on是旧式兼容写法,规范要求"liga" 1;无效值在 Chrome DevTools → Computed 面板里会显示为 strike-through 灰字
font-feature-settings 能开哪些特性?怎么选才不白写
不是所有标签都通用,生效前提永远是“字体自带”:
-
"liga" 1:基础连字(fi、fl),绝大多数西文字体都带,最稳妥 -
"dlig" 1:装饰性连字(ct、st),得查字体文档,如IBM Plex Sans完整版支持,Inter默认不支持 -
"smcp" 1:小型大写字母,不是缩放,是独立字形;Source Serif Pro有,Open Sans没有 -
"ss01" 1到"ss20" 1:样式集,编号完全由设计师定义,FF Meta的ss05和Work Sans的ss05可能毫无关系 -
"frac" 1:仅对纯数字斜杠格式(如1/2)生效,且依赖字体内置分数字形,Noto Sans支持,Helvetica Neue不支持
如何验证特性是否真被启用?
别靠肉眼猜,用 Chrome DevTools 实锤:
- Elements → 找到目标元素 → Computed → 拉到底找
font-feature-settings,看值是否解析成功(非 strike-through) - Fonts 面板 → 点开当前渲染的字体 → 查 “OpenType Features” 列表,对应项是否已勾选
- 写测试文本:
fi fl st ct Th 1/2 abc,比纯英文段落更容易暴露失效点 - 注意平台差异:
cvXX在 macOS Safari 上支持度明显低于 Chrome/Edge,别只在单一环境验证
真正容易被忽略的是:特性启用 ≠ 字体加载完成。如果用了 font-display: swap,首屏可能先用系统字体渲染,等 Web 字体加载完才重绘——这时候你看到的“没反应”,其实是时机问题,不是写错了。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











