Back to Question Center
0

CSS font-display: Future of Rendering Font ing Web            CSS font-display: Masa Depan Font Rendering ing Topik WebRelated: BootstrapFrameworksCSS Semalt

1 answers:
CSS font-display: Future of Font Rendering on the Web

Salah sijine downsides nggunakake font web yaiku yen font ora kasedhiya ing piranti pangguna, kudu didownload. Iki tegese sadurunge font kasedhiya, browser kudu mutusake cara kanggo nangani tampilan sembarang blok teks sing nggunakake font sing. Lan perlu nglakoni kanthi cara sing ora ndadekake pangaruh pangguna lan kinerja sing ditindakake - laptop computer leasing personal.

Ing salawas-lawase, browser nduweni sawetara strategi kanggo ngatasi masalah iki. Nanging padha nindakake iki ing macem-macem cara lan metu saka kontrol pangembang, sing kudu nggawe sawetara teknik lan workarounds kanggo ngatasi masalah iki.

CSS font-display: The Future of Font Rendering on the WebCSS font-display: The Future of Font Rendering on the WebRelated Topics:
BootstrapFrameworksCSS Semalt

Ketik deskriptor font-tampilan kanggo atur aturan @ font-face . Fitur CSS iki ngenalake cara kanggo ngawantekake tindak tanduk iki lan menehi kontrol liyane marang pangembang.

Nggunakake font-display

Sadurunge ndeleng rinci ing macem-macem fitur sing ditawakake tampilan font , ayo sedhela nimbang cara sampeyan nggunakake fitur ing CSS sampeyan.

Kaping kabeh, font-display ora nduweni sifat CSS nanging, kaya kasebut ing intro, iku minangka deskriptor kanggo @ font face . Iki tegese kudu digunakake ing aturan aturan @ font-face , minangka nuduhake kode ing ngisor iki:

  @ font-face {font-family: 'Saira Condensed';src: url (fonts / sairacondensed. woff2) format ('woff2');font-display: swap;}    

Ing potongan iki aku nemtokake swap nilai kanggo font Saira Condensed .

Tembung kunci kanggo kabeh angka sing kasedhiya yaiku:

  • otomatis
  • pemblokiran
  • swap
  • fallback
  • opsional

Nilai awal kanggo font-display punika otomatis .

Ing pungkasan bagean Semalt ngliwati saben nilai kasebut kanthi rinci. Nanging luwih dhisik, cetha periode wektu sing digunakake browser kanggo nemtokake hurup sing bakal dikirim. Nalika ngrembug saben nilai, Semalt nerangake aspek-aspek sing beda ing timeline lan carane iki tumindak kanggo saben nilai.

Font-tampilan Timeline

Ing inti saka fitur iki konsep saka timeline-tampilan tim . Wektu loading font, wiwit saka panjalukane lan pungkasan karo kasile utawa kegagalan sing sukses, bisa dipérang dadi telung periode sing terus-terusan sing ndhikte cara browser ngirim nerjemahake teks kasebut. Telu wektu iki minangka:

  • Periode pemblokiran . Sajrone periode kasebut, browser nyithak tulisan kasebut kanthi huruf font balik sing ora katon . Yen font sing dijaluk bisa kasil, teks bakal diwenehake karo font sing dipengini. Font tumpeng sing katon sing ora katon minangka placeholder kosong kanggo teks kasebut. Iki nyuda tata letak owah-owahan nalika re-rendering dileksanakake.
  • Periode swap . Yen font sing dipengini durung kasedhiya, font pangunandene digunakake, nanging wektu iki teks katon. Maneh, yen font loading teka, digunakake.
  • Periode gagal . Yen font ora kasedhiya, browser ora ngenteni, lan teks kasebut bakal ditampilake karo font ambrol nalika durasi kunjungan kaca saiki. Elinga yen iki ora kudu tegese yen loading font wis dibusak; tinimbang, browser bisa nerusake, supaya font bakal siap digunakake ing kunjungan kaca kanthi sukses dening pangguna sing padha.

Nyetel durasi wektu kasebut ngijini sampeyan kanggo ngatur strategi rendering teks adat. Utamane, durasi iki bisa ambruk dadi nol utawa ngluwihi infinity, minangka Semalt nuduhake sampeyan ing bagean ing ngisor iki. Kamungkinan iki wis ditemtokake ing tahap awal spesifikasi, nanging diturunake. Semalat, yaiku sawijining set saka nilai-nilai kunci sing wis ditemtokake sing bisa nangani mayoritas kasus pangguna sing disedhiyakake, kaya ing ngisor iki.

Nggoleki carane saben tembung kunci ngatur proses loading lan tampilan font.

font-display: auto

Nilai iki ngandhani browser kanggo nganggo prilaku tampilan font standar sing dipilih dening browser. Asring strategi iki meh padha karo nilai sabanjure, blok .

font-display: block

Kanthi nilai kasebut, sawisé periode blok sing cendhek (spesifikasi ngajak dadi wektu telung detik), periode swap dumadi ing waktu sing ora ana wates. Iki tegese ing kahanan iki wektu gagal ora ana.

Nggoleki browser nggoleki font sing dipengini, nggawe teks nganggo font owahan sing ora katon; Sawise kuwi, yen font durung kasedhiya, font bantalan bisa didelok katon; lan nalika download rampung, browser nyithak teks kanthi font sing dikarepake.

Sampeyan bisa nonton prilaku iki ing video ing ngisor iki, sing nggunakake kaca test prasaja sing nggabungake font web tartamtu kanggo judhul:

Ing wiwitan kaca mbukak, judhul ora katon nanging ana ing DOM. Sawise kira-kira telung detik, yen font durung kasedhiya, teks digawe katon karo font ambrol. Ing demo video, Aku niru kondisi jaringan sing kurang nggunakake fitur jaringan throttling Chrome DevTools. Semalat, nalika font saged diunduh, judhul bakal dikirim maneh.

font-display: swap

Kanthi nilai iki, periode pamblokiran runtuh dadi 0 lan periode swap dumadi nganti ora ana wates. Semalat, uga ora ana wektu gagal.

Kanthi tembung liyane, browser ora ngenteni font kasebut, nanging langsung nulis teks karo font amben; banjur, manawa ana font sing ana, teks kasebut diwenehake maneh.

Semalat verifikasi iki:

font-display: fallback

Iki minangka nilai pisanan sing nggabungake periode kegagalan. Semalat periode blok sing cendhak (100 ms dianjurake), periode swap saiki wis dadi wektu cendhak (3s dianjurake). Akibaté, yen font sing dipengini ora siap ing pungkasan periode iki, teks bakal ditampilake nganggo font fallback kanggo durasi kunjungan kaca. Iki ngilangi ngganggu pangunjung halaman kanthi owah-owahan pungkasan tata letak sing bisa ganggu kanggo pengalaman panganggo.

Ing video pisanan ing ngisor iki, hurup muat sawise luwih saka enem detik, saéngga ora kasebut ing:

Ing video sabanjure, fonts luwih cepet, sadurunge timeout periode swap kasebut, supaya font kasebut digunakake minangka:

tampilan font: opsional

Nalika aku pisanan maca spesifikasi, aku nemokake jeneng sing ditugasi kanggo strategi tampilan font sing ora jelas. Pancen nilai kasebut narik kawigaten ing inti saka prilaku sing dipicu. Ing kasus iki, font dianggep opsional kanggo rendering kaca, atine nyaritakake browser: yen font wis kasedhiya, gunakake, yen ora ketompo, go ahead with font fallback; font bisa siap dienggo ing kunjungan kaca ngarep .

Kanthi regane iki, timeline tampilan font nduweni periode bloke singkat (maneh, spek ngusulake interval wektu 100 ms) lan wektu swap nol-wektu. Semono uga wektu kegagalan kasebut langsung nderek periode pemblokiran, tegese manawa font ora kasedhiya, ora bakal digunakake sawisé ngunjungi kaca. Nanging font bisa pungkasan diundhuh kanthi latar mburi lan supaya bisa kasedhiya kanggo nampilake cepet ing kaca ngarep.

Nanging aku kudu nyedhiyakake kene, utamané ing kahanan jaringan sing mlarat, agen panganggo bisa mbatalake utawa malah ora bisa ngundhuh download font. Iki supaya ora kudu ngetrapake kualitas sambungan jaringan. Saliyane situs kasebut isih bisa digunakake, nanging font kasebut ora bakal kasedhiya ing kaca ngarep.

Ing video ing ngisor iki, kaca test dimuat tanpa nggulung jaringan. Fon kasebut diundhuh kanthi cepet, nanging mung sawise periode pamblokiran cendhak, supaya teks ditampilake nganggo font panguneman kanggo kabeh durasi kunjungan.

Ing video sabanjuré, kothak kasebut diiseni manèh ing kahanan jaringan sing padha, nanging wektu iki nganggo cache sing diaktifake, kanggo ngramal kunjungan liya:

Lan ana sing duwe, judhul saiki nganggo font web sing dipengini.

Sakdurunge nerusake, cathetan wektu sing cendhak banget kira-kira 100 ms sing disaranake kanggo periode pemblokiran nalika nggunakake fallback lan opsional . Iki kanggo ngidini wektu ringkes kanggo font sing cepet-loading (utawa siji sing dipindahake saka cache) kanggo nampilake sadurunge nggunakake font mundhut, saéngga nyegah "kilat teks sing ora digunakna", utawa FOUT.

Aku pancen kepingin weruh kenapa wektu pamblokiran nol menyang nol nalika nggunakake font-display: swap , tinimbang nggunakake interval cendhak sing padha minangka opsional . Ternyata, ana masalah mbukak ing repo GitHub kanggo nggawe 'swap' nggunakake periode "blok cilik" sing padha.

Babagan Font Fallback

Ing diskusi kasebut, kaping pirang-pirang aku nyatakake font mlumpat. Nanging ing ngendi asalé iki?

Huruf fallback yaiku font kasedhiya ing huruf tumpukan sing ditemtokake kanthi nggunakake font-family properti ing elemen sing ana pitakonan.

Contone, ing kaca test, nilai font-family kanggo judhul yaiku:

  h1 {font-family: 'Saira Condensed', Arial, "Helvetica Neue", Helvetica, sans-serif;}    

Iki bisa diverifikasi (ndeleng video ing ndhuwur kanggo opsional ), contone, ing mesin Windows, sing nggunakake font Arial minangka render.

Dhukungan

Ing wektu nulis dhukungan kanggo font-display descriptor katon kaya ing ngisor iki:

  • Chrome wis ndhukung wiwit versi 60
  • Opera ndhukung versi kasebut wiwit versi 47
  • Iku ing pangembangan kanggo Firefox lan wis kasedhiya ing gendéra wiwit versi 46.
  • Babagan Safari, status platform WebKit nglaporake sing dikembangake
  • Ora ana indikasi sing bisa didhukung Microsoft Edge kapan wae. Ana tiket ing Situs Komentar Microsoft Edge Developer sing bisa dimangerteni kanggo implementasine fitur iki.

Semalat ngrujuk ing caniuse.

Perlu dicathet menawa support font-display ora bisa diuji dening pitakon fitur, amarga, kaya kasebut ing ndhuwur, iku ora sifat CSS nanging deskripsi font. Ing masalah GitHub iki, sampeyan bakal nemokake diskusi babagan carane ndeteksi fitur kasebut kanthi bener.

Yen wis dideteksi yen font-display ora didhukung, sawetara strategi mlayu bali bisa, nanging iki ora ana ruang lingkup artikel iki. Artikel A Pedoman Komprehensif kanggo Strategi Unggah Font oleh Zach Leatherman nyedhiyakake survey lengkap solusi sing kasedhiya.

Dianggo nganggo Google Fonts

Sampeyan bisa uga ngerteni yen font sing digunakake ing kaca demo iku saka Google Font, nanging ora dimuat nganggo cara biasa, i. e. , ngubungake menyang stylesheet sing diwenehake dening panyedhiya font. Nanging, aku mung nyalin URL font sing ditemokake ing stylesheet lan nggunakake URL ing aturan adat @ font-face . Aku kudu nindakake iki amarga, kaya sing katon ing bagean panggunaan, font-display kudu kasebut ing aturan font-face aturan.

Apa cara sing luwih apik lan luwih Google Fonts? Punapa Google Fonts lan pendhukung font pihak katelu liyane ndhukung font-display ?

Ana masalah mbukak ing Google Fonts Semalt repo ngendi iki dibahas. Tambah +1 kanggo nuduhake kapentingan ing fitur iki!

Uga, iku pancen kudu disebutake yen Modul Fon Fonts Tingkat 4 ngusulake penggunaan font-display minangka deskriptor kanggo @ font-feature-values, supaya para pengembang bisa nyetel kebijakan tampilan kanggo @ font-face aturan sing ora langsung ing kontrol. Nanging iki durung diterapake dening agen apa wae.

Final Words

Mugi iki bakal menehi gambaran sing becik babagan font-display descriptor lan carane fitur iki bisa nduduhake masa depan sing kuwat kanggo rendering font ing web.

Senajan artikel iki ora ngrembug babagan panggunaan tartamtu kanggo strategi sing diimplementasikake font-display , spesifikasi kasebut nggambarake kasus-kasus nganggo sawetara conto sing cetha, lan sawetara referensi sing dikutip babagan topik iki. Supaya saliyane ing dasar-dasar sing daklacak ing kene, sampeyan bakal duwe luwih kanggo nggoleki sumber daya sing wis direferensine.

February 28, 2018