unicode-range
Hotel v CSS je z uporablja @font-face
za opredelitev znake, ki jih podpira obraz pisave.
@font-face ( font-family: 'MyWebFont'; /* Define the custom font name */ src: url('myfont.woff2') format('woff2'), url('myfont.woff') format('woff'); /* Define where the font can be downloaded */ unicode-range: U+00-FF; /* Define the available characters */ )
Z drugimi besedami, @font-face
skliceval se bo na lastnost in določil, ali naj prenese in uporablja pisavo glede na to, ali se znaki ali obseg znakov ujemajo z znaki v dokumentu HTML.
Pisava: Hej HTML, ali se kateri od naslednjih znakov ujema s tem, kar je na strani?
HTML: Ja, veliko jih jih ima.
Font-Face: Odlično, tukaj je datoteka pisave, ki jo morate prenesti za prikaz teh znakov.
Pomembno semantično razlikovanje, ki bi ga tukaj morali poklicati, je, da se unicode-range
določi, za katere znake se lahko uporablja pisava, in ne za katere znake je pisava na voljo. Z drugimi besedami, če razglasimo, da je unicode-range
vklopljen @font-face
in se znaki, naloženi v dokumentu HTML, ujemajo s tem obsegom, se bo pisava prenesla in dala v uporabo.
Lahko si predstavljate koristi od uspešnosti, ki se odpirajo s to lastnostjo. Pisavo po meri lahko na primer naložimo le, če vsebuje določene znake, namesto da bi v vseh primerih vedno naložili pisavo.
Zahvaljujoč priročnemu triku, ki ga je delil Jake Archibald, obstaja celo možnost kombiniranja dveh @font-face
sklopov na isti font-face
izjavi o lastnostih. Ideja je, da en @font-face
niz preglasi drugega na podlagi ujemajočega se unicode-range
, optimiziranega delovanja ali preprosto izboljšanja tipografije na strani.
Vrednote
Vsaka koda ali obseg znakov Unicode je sprejemljiva unicode-range
vrednost. Opazili boste, da pred točkami unicode U+
sledi do šest znakov, ki sestavljajo kodo znakov. Točke ali obsegi, ki ne sledijo tej obliki, se štejejo za neveljavne in bodo povzročili, da bo lastnost prezrta.
- Enotni znak (npr.
U+26
) - Obseg znakov (npr.
U+0025-00FF
) - Območje nadomestnih znakov (npr.
U+4??
)
Wildcard Range je zapleten. Vsak ?
predstavlja nadomestni znak, kjer se ujema katera koli vrednost. Mislili bi, da to pomeni, da lahko celotno stvar nadomestite s čim podobnim:
@font-face ( font-family: 'MyWebFont'; src: url('myfont.woff2') format('woff2'), url('myfont.woff') format('woff'); unicode-range: U+??????; /* This does not work! */ )
Vendar to ne bo delovalo. Razlog je v tem, da vodenje z ?
implicira kodo znakov, ki vodi z 0
, kar pomeni, da je mogoče uporabiti do pet znakov vprašanj, kljub temu, da unicode sprejmejo do šest znakov.
@font-face ( font-family: 'MyWebFont'; src: url('myfont.woff2') format('woff2'), url('myfont.woff') format('woff'); unicode-range: U+?????; /* This works and is equivalent to U+0????? */ )
Obstaja ogromno možnosti Unicode. Osnovna latinica ( 0020-007F
) je verjetno najpogostejši obseg za angleška spletna mesta, toda unicode-table.com ponuja izčrpen seznam vseh razpoložljivih obsegov s kodami za določene znake.
Podpora za brskalnik
Ti podatki o podpori brskalnika so od Caniuse, ki vsebuje več podrobnosti. Številka pomeni, da brskalnik podpira to funkcijo v tej različici ali novejši.
Namizje
Chrome | Firefox | IE | Rob | Safari |
---|---|---|---|---|
36 | 44 | 11. | 17. | 10. |
Mobilni / tablični računalnik
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 10,0-10,2 |
Nadaljnje branje
- Specifikacija modula pisav CSS 3. stopnje
- Tabela Unicode: Vir za sklicevanje na nabor znakov in kode Unicode.
- Uporaba @ font-face: CSS-Tricks objava, ki opisuje, kako
@font-face
deluje z različnimi tehnikami in primeri dela. - Kakšen je dogovor z razglasitvijo lastnosti pisave na @ font-face?: Objava CSS-Tricks, ki je povezana s tem, kako lahko z ujemajočimi se vrednostmi v lastnostih pisave določite, ali je brskalnik prenesel in uporabil pisavo po meri.