unicode-range
Nekretnina u CSS se koristi od strane @font-face
definirati znakove koje podržava lice fonta.
@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 */ )
Drugim riječima, @font-face
odnosit će se na svojstvo i utvrditi treba li ga preuzeti i koristiti font na temelju toga podudaraju li se znakovi ili raspon znakova s onima u HTML dokumentu.
Font Face: Hej HTML, odgovara li bilo koji od sljedećih znakova onome što je na stranici?
HTML: Da, gomila njih to zna.
Font-Face: Super, evo datoteke s fontom koju biste trebali preuzeti za prikaz tih znakova.
Važna semantička razlika koju bismo ovdje trebali istaknuti jest ta da se unicode-range
određuje za koje se znakove font može koristiti, a ne za znakove kojih je font dostupan. Drugim riječima, ako proglasimo unicode-range
uključeno @font-face
i znakovi koji su se učitali u HTML dokument podudaraju se s tim rasponom, tada će se font preuzeti i staviti u upotrebu.
Možete zamisliti prednosti performansi koje se otvaraju s ovom nekretninom. Na primjer, prilagođeni font možemo učitati samo ako sadrži određene znakove, umjesto da uvijek učitava font u svim situacijama.
Postoji čak i način kombiniranja dva @font-face
seta na istoj font-face
deklaraciji imovine zahvaljujući zgodnom triku koji je podijelio Jake Archibald. Ideja je da jedan @font-face
skup nadjača drugi na temelju podudarnih unicode-range
, optimizirajući izvedbu ili jednostavno poboljšavajući tipografiju na stranici.
Vrijednosti
Bilo koji kod ili raspon unicode znakova prihvatljiva je unicode-range
vrijednost. Primijetit ćete da unicode točkama prethodi i U+
slijedi do šest znakova koji čine kôd znaka. Točke ili rasponi koji ne slijede ovaj format smatraju se nevaljanima i uzrokovat će zanemarivanje svojstva.
- Jedan znak (npr.
U+26
) - Raspon znakova (npr.
U+0025-00FF
) - Raspon zamjenskih znakova (npr.
U+4??
)
Wildcard Range je vrlo nezgodan. Svaki ?
predstavlja zamjenski znak gdje će se podudarati bilo koja vrijednost. Pomislili biste da to znači da cijelu stvar možete zamijeniti nečim sličnim ovome:
@font-face ( font-family: 'MyWebFont'; src: url('myfont.woff2') format('woff2'), url('myfont.woff') format('woff'); unicode-range: U+??????; /* This does not work! */ )
Međutim, ovo neće uspjeti. Razlog je taj što vođenje s ?
podrazumijeva kôd znaka koji vodi sa 0
, što znači da se može koristiti do pet znakova pitanja, unatoč tome što unicodes prihvaćaju do šest ukupnih znakova.
@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????? */ )
Postoji mnoštvo unicode opcija. Osnovni latinica ( 0020-007F
) vjerojatno je najčešći raspon za engleska web mjesta, ali unicode-table.com pruža sveobuhvatan popis svih dostupnih raspona s kodovima za određene znakove.
Podrška preglednika
Podaci o podršci preglednika potječu iz tvrtke Caniuse, koja sadrži više detalja. Broj označava da preglednik podržava značajku u toj verziji i novijoj.
Radna površina
Krom | Firefox | IE | Rub | Safari |
---|---|---|---|---|
36 | 44 | 11 | 17 | 10 |
Mobitel / tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 10,0-10,2 |
Daljnje čitanje
- Specifikacija modula CSS fontova razine 3
- Unicode tablica: resurs za upućivanje na unicode skupove znakova i kodove.
- Korištenje @ font-face: CSS-Tricks post koji opisuje kako se
@font-face
radi s različitim tehnikama i primjerima rada. - Kakva je stvar s deklarisanjem svojstava fonta na @ font-face ?: CSS-Tricks post koji je povezan koliko se podudarne vrijednosti u svojstvima fonta mogu koristiti za određivanje preuzima li i koristi li prilagođeni font preglednik.