font-feature-settings

font-feature-settings CSS 描述符允许您定义由 @font-face @规则定义的字体的初始设置。您可以进一步使用此描述符来控制由 @font-face 定义的字体的排版字体特性,例如连字、小型大写字母和花体字。此描述符的值与 font-feature-settings 属性相同,除了全局关键字值。

由于此描述符在 @font-face @规则中的字体对象上设置特性值,而不是在整个元素上设置,因此元素中可能只有某些字形使用此描述符进行渲染。

语法

css
/* Use the default settings */
font-feature-settings: normal;

/* Set values for OpenType feature tags */
font-feature-settings: "smcp";
font-feature-settings: "smcp" on;
font-feature-settings: "swsh" 2;

此描述符指定为关键字 normal 或为 <feature-tag-value> 值的逗号分隔列表。渲染文本时,OpenType <feature-tag-value> 值列表将传递给文本布局引擎以启用或禁用字体特性。

normal

指示使用默认字体设置来布局文本。这是默认值。

<feature-tag-value>

表示由标签名称和可选值组成的空格分隔的元组。

标签名称始终是四个 ASCII 字符的 <string>。如果标签名称的字符数多于或少于四个,或者如果它包含 U+20U+7E 代码点范围之外的字符,则描述符无效。

可选值可以是正整数或关键字 onoff。关键字 onoff 分别是值 10 的同义词。如果未设置值,则默认为 1。对于非布尔 OpenType 特性(例如,风格替换),该值表示要选择的特定字形;对于布尔特性,该值打开或关闭该特性。

正式定义

正式语法

font-feature-settings = 
normal |
<feature-tag-value>#

<feature-tag-value> =
<opentype-tag> [ <integer [0,∞]> | on | off ]?

<opentype-tag> =
<string>

示例

使用 @font-face @规则启用花体字形

在此示例中,标签名称 swsh 和布尔值 1 用作 @font-face @规则中 font-feature-settings 描述符的值。

HTML

html
<p class="swashoff">Swash is off here</p>
<p class="swashon">Swash is on here</p>

CSS

css
@font-face {
  font-family: MonteCarlo;
  src: url("montecarlo-regular.woff2");
}
@font-face {
  font-family: MonteCarlo2;
  src: url("montecarlo-regular.woff2");
  font-feature-settings: "swsh" 1;
}
p {
  font-size: 3rem;
  margin: 0.7rem 3rem;
}
.swashoff {
  font-family: MonteCarlo;
}
.swashon {
  font-family: MonteCarlo2;
}

结果

第 1 行显示了 MonteCarlo 字体的默认华丽设计,第 2 行显示了默认字形被 花体 字形替换。

规范

规范
CSS 字体模块级别 4
# font-rend-desc

浏览器兼容性

BCD 表仅在浏览器中加载

另请参阅