font-variant-alternates

Baseline 已廣泛支援

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

font-variant-alternates CSS 屬性控制替代字形的使用。這些替代字形可以透過 @font-feature-values 中定義的替代名稱進行引用。

@font-feature-values at-rule 可用於為給定的字體面關聯一個人類可讀的名稱與一個數字索引,該索引控制特定的 OpenType 字型特性。對於選擇替代字形的特性(stylisticstylesetcharacter-variantswashornamentannotation),font-variant-alternates 屬性可以引用人類可讀的名稱以應用相關特性。

這允許 CSS 規則啟用替代字形,而無需知道特定字型用於控制它們的具體索引值。

語法

css
/* Keyword values */
font-variant-alternates: normal;
font-variant-alternates: historical-forms;

/* Functional notation values */
font-variant-alternates: stylistic(user-defined-ident);
font-variant-alternates: styleset(user-defined-ident);
font-variant-alternates: character-variant(user-defined-ident);
font-variant-alternates: swash(user-defined-ident);
font-variant-alternates: ornaments(user-defined-ident);
font-variant-alternates: annotation(user-defined-ident);
font-variant-alternates: swash(ident1) annotation(ident2);

/* Global values */
font-variant-alternates: inherit;
font-variant-alternates: initial;
font-variant-alternates: revert;
font-variant-alternates: revert-layer;
font-variant-alternates: unset;

此屬性可以採用以下兩種形式之一:

  • 關鍵字 normal
  • 或下面列出的一個或多個其他關鍵字和函式,以空格分隔,順序不限。

normal

此關鍵字停用替代字形。

historical-forms

此關鍵字啟用歷史形式——過去常見但現在不用的字形。它對應於 OpenType 值 hist

stylistic()

此函式為單個字元啟用風格替代。引數是對映到數字的字型特定名稱。它對應於 OpenType 值 salt,例如 salt 2

styleset()

此函式為字元集啟用風格替代。引數是對映到數字的字型特定名稱。它對應於 OpenType 值 ssXY,例如 ss02

character-variant()

此函式為字元啟用特定的風格替代。它類似於 styleset(),但不為字元集建立連貫的字形;單個字元將具有獨立的、不一定連貫的風格。引數是對映到數字的字型特定名稱。它對應於 OpenType 值 cvXY,例如 cv02

swash()

此函式啟用花式字字形。引數是對映到數字的字型特定名稱。它對應於 OpenType 值 swshcswh,例如 swsh 2cswh 2

ornaments()

此函式啟用裝飾,例如花飾和其他雜錦字形。引數是對映到數字的字型特定名稱。它對應於 OpenType 值 ornm,例如 ornm 2

注意: 為了保留文字語義,字型設計者應將不與 Unicode 雜錦字元匹配的裝飾作為專案符號字元 (U+2022) 的裝飾變體。請注意,一些現有字型不遵循此建議。

annotation()

此函式啟用註釋,例如帶圓圈的數字或反轉字元。引數是對映到數字的字型特定名稱。它對應於 OpenType 值 nalt,例如 nalt 2

正式定義

初始值normal
應用於所有元素和文字。它也適用於 ::first-letter::first-line
繼承性
計算值同指定值
動畫型別離散

正式語法

font-variant-alternates = 
normal |
[ stylistic( <feature-value-name> ) || historical-forms || styleset( <feature-value-name># ) || character-variant( <feature-value-name># ) || swash( <feature-value-name> ) || ornaments( <feature-value-name> ) || annotation( <feature-value-name> ) ]

<feature-value-name> =
<ident>

示例

啟用花式字字形

在此示例中,我們使用 @font-feature-values at-rule 為 MonteCarlo 字型的 swash 特性定義一個名稱。該規則將名稱 "fancy" 對映到索引值 1

然後我們可以在 font-variant-alternates 中使用該名稱來為該字型啟用花式字。這等同於 font-feature-settings: "swsh" 1 這樣的行,只不過應用該特性的 CSS 不需要包含,甚至不需要知道,此特定字型所需的索引值。

HTML

html
<p>A Fancy Swash</p>
<p class="variant">A Fancy Swash</p>

CSS

css
@font-face {
  font-family: "MonteCarlo";
  src: url("/shared-assets/fonts/monte-carlo/monte-carlo-regular.woff2");
}

@font-feature-values "MonteCarlo" {
  @swash {
    fancy: 1;
  }
}

p {
  font-family: "MonteCarlo", cursive;
  font-size: 3rem;
  margin: 0.7rem 3rem;
}

.variant {
  font-variant-alternates: swash(fancy);
}

結果

規範

規範
CSS 字型模組第 4 級
# font-variant-alternates-prop

瀏覽器相容性

另見