OpenType 原始开关:font-feature-settings
数字的对齐与字形一页里 font-variant-numeric 的各个取值,底层都对应着 OpenType 字体里一个 4 字符的 feature tag(tnum / onum / zero…)。font-feature-settings
是直接拨动这些原始开关的低层接口:写 "liga" 1 开启、"liga" 0 关闭。除数字外,它还覆盖连字、上下标、风格集等多种 feature。
1 · 高层属性 vs 底层 tag:优先用高层
同一件事,font-feature-settings: "tnum" 1 与 font-variant-numeric: tabular-nums 效果一致。但常规需求应优先使用高层语义属性——从语义、组合、继承三个维度看它都更省心,底层接口的唯一优势只是能力覆盖更全。
| 维度 | font-variant-*(高层) |
font-feature-settings(底层) |
|---|---|---|
| 语义 | tabular-nums 一眼可读 |
"tnum" 1 需查表 |
| 组合 | 多个值各自独立设定 | 一次性全覆盖,易互相清除 |
| 继承 | 按属性正常层叠 | 整串覆盖,子元素难以局部修改 |
| 能力 | 只覆盖常用 feature | 可开启任意 tag(swsh / ss05…) |
原则:常规排版需求用 font-variant-*;只有要某个高层属性未暴露的少用 feature(花体、特定风格集)时,才下沉到 font-feature-settings。
注意:font-feature-settings 是「整串覆盖」式属性——后一条声明会完全替换前一条,而非叠加。要同时开启多个,必须写在同一条里:font-feature-settings: "liga" 1, "tnum" 1;。本页 demo 会把勾选的项合并成一条声明。
2 · 相关链接
- font-feature-settings · MDN——developer.mozilla.org。底层 OpenType feature 开关,4 字符 tag +
0/1;以及为什么应优先用font-variant-*高层属性。 -
OpenType Layout feature tag registry——learn.microsoft.com。全部 OpenType feature 4 字符 tag 的官方注册表:
liga/dlig/smcp/onum/tnum/frac/ss01… 各自含义。