@font-feature-values

Baseline 已廣泛支援

此功能已成熟,並可在許多裝置和瀏覽器版本上執行。自 2023 年 3 月以來,它已在各種瀏覽器中可用。

@font-feature-values 是一個 CSS @規則,它允許你在 font-variant-alternates 屬性中使用一個通用名稱來表示 OpenType 中以不同方式啟用的特性。當使用多種字型時,這有助於簡化 CSS。

@font-feature-values @規則可以用於 CSS 的頂層,也可以用於任何 CSS 條件組 @規則內部。

語法

css
@font-feature-values Font Name {
  font-display: swap;
  @styleset {
    nice-style: 12;
  }
  @swash {
    fancy: 2;
  }
}

每個 @font-feature-values 塊可以包含一個特性值塊列表(如下所示),以及 font-display 描述符。

特性值塊

@swash

指定一個特性名稱,該名稱將與 font-variant-alternatesswash() 函式符號一起使用。一個 swash 特性值定義只允許一個值:ident1: 2 是有效的,但 ident2: 2 4 無效。

@annotation

指定一個特性名稱,該名稱將與 font-variant-alternatesannotation() 函式符號一起使用。一個 annotation 特性值定義只允許一個值:ident1: 2 是有效的,但 ident2: 2 4 無效。

@ornaments

指定一個特性名稱,該名稱將與 font-variant-alternatesornaments() 函式符號一起使用。一個 ornaments 特性值定義只允許一個值:ident1: 2 是有效的,但 ident2: 2 4 無效。

@stylistic

指定一個特性名稱,該名稱將與 font-variant-alternatesstylistic() 函式符號一起使用。一個 stylistic 特性值定義只允許一個值:ident1: 2 是有效的,但 ident2: 2 4 無效。

@styleset

指定一個特性名稱,該名稱將與 font-variant-alternatesstyleset() 函式符號一起使用。一個 styleset 特性值定義允許無限數量的值:ident1: 2 4 12 1 對映到 OpenType 值 ss02ss04ss12ss01。請注意,大於 99 的值是有效的,但不會對映到任何 OpenType 值並被忽略。

@character-variant

指定一個特性名稱,該名稱將與 font-variant-alternatescharacter-variant() 函式符號一起使用。一個 character-variant 特性值定義允許一個或兩個值:ident1: 3 對映到 cv03=1ident2: 2 4 對映到 cv02=4,但 ident2: 2 4 5 是無效的。

正式語法

@font-feature-values = 
@font-feature-values <family-name># { <declaration-rule-list> }

<family-name> =
<string> |
<custom-ident>+

示例

在 @font-feature-values 規則中使用 @styleset

css
/* At-rule for "nice-style" in Font One */
@font-feature-values Font One {
  @styleset {
    nice-style: 12;
  }
}

/* At-rule for "nice-style" in Font Two */
@font-feature-values Font Two {
  @styleset {
    nice-style: 4;
  }
}

/* Apply the at-rules with a single declaration */
.nice-look {
  font-variant-alternates: styleset(nice-style);
}

規範

規範
CSS 字型模組第 4 級
# font-feature-values

瀏覽器相容性

另見