Własność CSS font-variant-alternates umożliwia wybór obecnych w fontach alternatywnych zestawów glifów, którym nadano przyjazną dla użytkownika nazwę za pomocą reguły @font-feature-values.
Niektóre fonty, oprócz domyślnego zestawu glifów, mogą zawierać ich różne alternatywne wersje, na przykład wersję historyczną albo kaligraficzną itd. Dzięki własności font-variant-alternates można w wygodny sposób korzystać z tych dodatkowych odmian znaków.
Dostępność i liczba alternatywnych zestawów glifów zależą od fontu. Jeśli dana rodzina fontów zawiera alternatywne wersje glifów określonego rodzaju, to są one ponumerowane od 1 i za pomocą tych indeksów można się do nich odnosić na dwa sposoby.
Pierwsza, mniej zalecana, metoda polega na użyciu własności font-feature-settings, która umożliwia korzystanie z różnych zaawansowanych właściwości fontów OpenType. Na przykład poniższa deklaracja wybiera pierwszą kaligraficzną wersję kroju pisma, który jest w użyciu (nazwa właściwości OpenType swsh pochodzi od angielskiego słowa swash oznaczającego właśnie pismo kaligraficzne):
p {
font-feature-settings: "swsh" 1;
}Druga, bardziej zalecana, technika polega na użyciu reguły @font-feature-values, która umożliwia zdefiniowanie aliasu dla wybranego indeksu alternatywnego zestawu glifów i użycie tego aliasu jako wartości własności font-variant-alternates. Jest to wygodniejszy i przyjaźniejszy dla użytkownika sposób posługiwania się dodatkowymi glifami. Spójrz na poniższy przykład:
@font-face {
font-family: ZapFinoExtraLTPro;
src: url("ZapfinoExtraLTPro.otf");
}
@font-feature-values "ZapFinoExtraLTPro" {
@swash {
kaligrafia: 1;
}
}
p {
font-family: "ZapFinoExtraLTPro";
font-variant-alternates: swash(kaligrafia);
}Rodzina fontów Zap Fino Extra LT Pro zawiera zestaw glifów kaligraficznych, który został użyty w powyższym przykładzie. Normalnie tekst wyrenderowany przy użyciu tego fontu wygląda tak*:
A tak wygląda tekst wyrenderowany przy użyciu kaligraficznej wersji glifów z tego fontu:
Można powiedzieć, że własność font-variant-alternates i reguła @font-feature-values to wzajemnie uzupełniająca się nierozłączna para.
Wartości i składnia
Wartością własności font-variant-alternates może być słowo kluczowe normal albo dowolna liczba (nie mniejsza od jeden) rozdzielanych spacjami elementów z poniższej listy:
- normal
- Wyłącza alternatywne zestawy glifów.
- historical-forms
- To słowo kluczowe włącza historyczne formy znaków, czyli takie, które były używane w przeszłości, ale już wyszły z użycia. Odpowiada ono tagowi OpenType
hist. - annotation(identyfikator)
Włącza różne adnotacyjne odmiany glifów, na przykład cyfry w okręgu, prostokącie, rombie itd. Parametr tej funkcji jest aliasem numeru właściwości OpenType
naltzdefiniowanym w regule@font-feature-valuesnp.:@font-feature-values "JakisFont" { @annotation { adnotacje: 3; } } p { font-family: "JakisFont"; font-variant-alternates: annotation(adnotacje); }- character-variant(identyfikator)
Włącza specyficzne odmiany stylistyczne znaków, które nie muszą wspólnie tworzyć spójnego zestawu, tzn. mogą całkowicie różnić się wyglądem. Parametr tej funkcji jest aliasem właściwości OpenType
cvindekszdefiniowanym w regule@font-feature-values(obecnie OpenType przewiduje wartości odcv01docv99), np.:@font-feature-values "JakisFont" { @character-variant { wariant: 51; } } p { font-family: "JakisFont"; font-variant-alternates: character-variant(wariant); }- ornaments(identyfikator)
Włącza ornamenty, czyli zdobnicze elementy używane w typografii. Parametr tej funkcji jest aliasem numeru właściwości OpenType
ornmzdefiniowanym w regule@font-feature-valuesnp.:@font-feature-values "ZapFinoExtraLTPro" { @ornaments { ornamenty: 1; } } p { font-family: "ZapFinoExtraLTPro"; font-variant-alternates: ornaments(ornamenty); }Poniższy zrzut ekranu przedstawia kilka ornamentów obecnych w foncie Zap Fino Extra LT Pro:
- styleset(identyfikator)
Włącza alternatywne stylistyczne podzbiory znaków, np. różne warianty małych liter. Parametr tej funkcji jest aliasem właściwości OpenType
ssindekszdefiniowanym w regule@font-feature-values(obecnie OpenType przewiduje wartości odss01doss20), np.:@font-feature-values "JakisFont" { @styleset { zestaw-stylistyczny: 16; } } p { font-family: "JakisFont"; font-variant-alternates: styleset(zestaw-stylistyczny); }- stylistic(identyfikator)
Włącza alternatywne wersje stylistyczne pojedynczych znaków. Parametr tej funkcji jest aliasem numeru właściwości OpenType
saltzdefiniowanym w regule@font-feature-valuesnp.:@font-feature-values "JakisFont" { @stylistic { odmiana-stylistyczna: 4; } } p { font-family: "JakisFont"; font-variant-alternates: stylistic(odmiana-stylistyczna); }- swash(identyfikator)
- Włącza kaligraficzną odmianę znaków. Parametr tej funkcji jest aliasem numeru właściwości OpenType
swshzdefiniowanym w regule@font-feature-values. Przykład jej użycia znajduje się na początku tej strony.
Zastosowanie
Własność CSS font-variant-alternates ma zastosowanie do wszystkich elementów HTML.
Podsumowanie
| Zastosowanie | Wszystkie elementy HTML |
|---|---|
| Obsługiwane wartości |
|
| Wartość początkowa | normal |
| Dziedziczenie | Tak |
| Specyfikacja | CSS Fonts Module Level 4, własność font-variant-alternates |
* Źródło przypisu: Jan Himilsbach, Działka rosyjskiego boga
