The unicode-range
properti di CSS digunakan oleh @font-face
untuk menentukan karakter yang didukung oleh font.
@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 */ )
Dengan kata lain, @font-face
akan merujuk ke properti dan menentukan apakah harus mengunduh dan menggunakan font berdasarkan apakah karakter atau rentang karakter cocok dengan yang ada di dokumen HTML.
Jenis Huruf: Hai HTML, apakah salah satu karakter berikut cocok dengan yang ada di halaman?
HTML: Ya, banyak dari mereka melakukannya.
Font-Face: Bagus, berikut adalah file font yang harus Anda unduh untuk menampilkan karakter tersebut.
Perbedaan semantik penting yang harus kita sebutkan di sini adalah yang unicode-range
menentukan karakter apa yang dapat digunakan font, daripada karakter apa yang tersedia untuk digunakan font. Dengan kata lain, jika kita mendeklarasikan unicode-range
on @font-face
dan karakter yang dimuat dalam dokumen HTML cocok dengan kisaran itu, maka font akan diunduh dan digunakan.
Anda dapat membayangkan manfaat kinerja yang terbuka dengan properti ini. Misalnya, kita dapat memuat font khusus hanya jika ia mengakomodasi karakter tertentu daripada selalu memuat font di semua situasi.
Bahkan ada cara untuk menggabungkan dua @font-face
set pada font-face
deklarasi properti yang sama , berkat trik praktis yang dibagikan oleh Jake Archibald. Idenya adalah bahwa satu @font-face
set menimpa yang lain berdasarkan kecocokan unicode-range
, mengoptimalkan kinerja, atau hanya meningkatkan tipografi pada halaman.
Nilai
Kode atau rentang karakter unicode apa pun adalah unicode-range
nilai yang dapat diterima . Anda akan melihat bahwa titik unicode diawali dengan U+
diikuti hingga enam karakter yang membentuk kode karakter. Titik atau rentang yang tidak mengikuti format ini dianggap tidak valid dan akan menyebabkan properti diabaikan.
- Karakter Tunggal (mis.
U+26
) - Rentang Karakter (misalnya
U+0025-00FF
) - Rentang Karakter Pengganti (mis.
U+4??
)
Rentang Wildcard adalah yang paling rumit dari kelompok itu. Masing-masing ?
mewakili karakter pengganti di mana setiap nilai akan cocok. Anda akan berpikir itu berarti Anda dapat memberi wildcard semuanya dengan sesuatu seperti ini:
@font-face ( font-family: 'MyWebFont'; src: url('myfont.woff2') format('woff2'), url('myfont.woff') format('woff'); unicode-range: U+??????; /* This does not work! */ )
Namun, ini tidak akan berhasil. Alasannya adalah bahwa memimpin dengan ?
menyiratkan kode karakter yang mengarah dengan 0
, yang berarti bahwa hingga lima karakter tanda tanya dapat digunakan meskipun unicode menerima hingga enam karakter total.
@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????? */ )
Ada banyak opsi unicode di luar sana. Bahasa Latin Dasar ( 0020-007F
) mungkin adalah rentang yang paling umum untuk situs berbahasa Inggris, tetapi unicode-table.com menyediakan daftar lengkap semua rentang yang tersedia dengan kode untuk karakter tertentu.
Dukungan Browser
Data dukungan browser ini berasal dari Caniuse, yang lebih detail. Angka menunjukkan bahwa browser mendukung fitur pada versi tersebut dan yang lebih baru.
Desktop
Chrome | Firefox | YAITU | Tepi | Safari |
---|---|---|---|---|
36 | 44 | 11 | 17 | 10 |
Ponsel / Tablet
Android Chrome | Android Firefox | Android | iOS Safari |
---|---|---|---|
88 | 85 | 81 | 10.0-10.2 |
Bacaan lebih lanjut
- Spesifikasi CSS Fonts Module Level 3
- Tabel Unicode: Sumber daya untuk mereferensikan kumpulan karakter dan kode unicode.
- Menggunakan @ font-face: CSS-Trik posting yang membahas bagaimana
@font-face
bekerja dengan berbagai teknik dan contoh kerja. - Apa masalahnya dengan mendeklarasikan properti font di @ font-face ?: Posting CSS-Tricks yang terkait sejauh bagaimana nilai yang cocok dalam properti font dapat digunakan untuk menentukan apakah font kustom diunduh dan digunakan oleh browser.