Свойство CSS `font-variant-alternates`
Базовая поддержка Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и во многих версиях браузеров. Она доступна во всех браузерах с марта 2023 года.
Свойство font-variant-alternates CSS управляет использованием альтернативных глифов. На эти альтернативные глифы можно ссылаться по альтернативным именам, определенным в @font-feature-values.
Правило @ @font-feature-values можно использовать, чтобы связать для заданного начертания шрифта удобочитаемое имя с числовым индексом, управляющим определенной функцией шрифта OpenType. Для функций, выбирающих альтернативные глифы (stylistic, styleset, character-variant, swash, ornament или annotation), свойство font-variant-alternates может ссылаться на удобочитаемое имя, чтобы применить соответствующую функцию.
Это позволяет включать альтернативные глифы с помощью правил 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(), но не создает согласованные глифы для набора символов: отдельные символы имеют независимые, не обязательно согласованные стили. Параметр — имя, заданное для конкретного шрифта и сопоставленное с числом. Оно соответствует значению OpenTypecvXY, напримерcv02. -
swash() - Эта функция включает глифы с росчерками. Параметр — имя, заданное для конкретного шрифта и сопоставленное с числом. Она соответствует значениям OpenType
swshиcswh, напримерswsh 2иcswh 2. -
ornaments() -
Эта функция включает орнаменты, например флероны и другие глифы-декоративные символы. Параметр — имя, заданное для конкретного шрифта и сопоставленное с числом. Она соответствует значению OpenType
ornm, напримерornm 2.Примечание: Чтобы сохранить семантику текста, разработчикам шрифтов следует включать орнаменты, не соответствующие символам Unicode для декоративных знаков, в качестве декоративных вариантов символа маркера списка (U+2022). Обратите внимание, что некоторые существующие шрифты не следуют этой рекомендации.
-
annotation() - Эта функция включает аннотации, например обведенные кружком цифры или перевернутые символы. Параметр — имя, заданное для конкретного шрифта и сопоставленное с числом. Она соответствует значению OpenType
nalt, напримерnalt 2.
Формальное определение
| Исходное значение | normal |
|---|---|
| Применяется к | всем элементам и тексту |
| Наследуется | да |
| Вычисленное значение | как задано |
| Тип анимации | дискретный |
Формальный синтаксис
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> = <custom-ident>
Примеры
Включение глифов с росчерками
В этом примере мы используем правило @ @font-feature-values, чтобы задать имя для функции swash шрифта MonteCarlo. Это правило сопоставляет имя "fancy" со значением индекса 1.
Затем мы можем использовать это имя внутри font-variant-alternates, чтобы включить росчерки для этого шрифта. Это эквивалентно строке вида font-feature-settings: "swsh" 1, за исключением того, что CSS, применяющему эту функцию, не нужно содержать и даже знать значение индекса, необходимое для этого конкретного шрифта.
HTML
<p>A Fancy Swash</p> <p class="variant">A Fancy Swash</p>
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);
}
Результат
Спецификации
Совместимость с браузерами
| Компьютеры | Мобильные устройства | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari на iOS | Samsung Internet | WebView для Android | WebView на iOS | |
font-variant-alternates |
111 |
111 |
34 |
97 |
9.1 |
111 |
34 |
75 |
9.3 |
22.0 |
111 |
9.3 |
annotation |
111 |
111 |
34 |
97 |
16.2 |
111 |
34 |
75 |
16.2 |
22.0 |
111 |
16.2 |
character_variant |
111 |
111 |
34 |
97 |
16.2 |
111 |
34 |
75 |
16.2 |
22.0 |
111 |
16.2 |
historical-forms |
111 |
111 |
34 |
97 |
9.1 |
111 |
34 |
75 |
9.3 |
22.0 |
111 |
9.3 |
normal |
111 |
111 |
34 |
97 |
9.1 |
111 |
34 |
75 |
9.3 |
22.0 |
111 |
9.3 |
ornaments |
111 |
111 |
34 |
97 |
16.2 |
111 |
34 |
75 |
16.2 |
22.0 |
111 |
16.2 |
styleset |
111 |
111 |
34 |
97 |
16.2 |
111 |
34 |
75 |
16.2 |
22.0 |
111 |
16.2 |
stylistic |
111 |
111 |
34 |
97 |
16.2 |
111 |
34 |
75 |
16.2 |
22.0 |
111 |
16.2 |
swash |
111 |
111 |
34 |
97 |
16.2 |
111 |
34 |
75 |
16.2 |
22.0 |
111 |
16.2 |
См. также
font-variantfont-variant-capsfont-variant-east-asianfont-variant-emojifont-variant-ligaturesfont-variant-numericfont-variant-position@font-feature-valuesfont-feature-settings
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/font-variant-alternates