Optimeerige oma veebisaidi fontide laadimist kiiruse ja kasutajakogemuse parandamiseks. Õppige tehnikaid stiilita teksti vilkumise (FOUT) vältimiseks ja tagage ühtlane tüpograafia seadmetes ja brauserites üle maailma.
CSS-fontide laadimise meisterlikkus: jõudluse optimeerimine ja FOUT-i vältimine globaalsele publikule
Tänapäeva visuaalselt juhitud digitaalses maastikus mängib tüpograafia otsustavat rolli veebisaidi esteetika ja kasutajakogemuse kujundamisel. Teie valitud fondid ja nende laadimise viis võivad oluliselt mõjutada teie saidi jõudlust, ligipääsetavust ja tajutavat kvaliteeti. Globaalse publiku jaoks on see veelgi kriitilisem, kuna kasutajad võivad teie saidile pääseda ligi erinevate võrgutingimuste, seadmete võimekuse ja geograafiliste asukohtade kaudu. See põhjalik juhend süveneb CSS-fontide laadimise keerukustesse, keskendudes kriitilistele jõudluse optimeerimise tehnikatele ja strateegiatele, et vältida kardetud stiilita teksti vilkumist (FOUT) ja nähtamatu teksti vilkumist (FOIT).
Fontide laadimise väljakutsete mõistmine
Veebifondid, pakkudes küll võrratut disainipaindlikkust, toovad kaasa ainulaadse kogumi jõudlusega seotud väljakutseid. Erinevalt süsteemifontidest, mis on kasutaja seadmes kohe kättesaadavad, peavad veebifondid brauseris alla laadima, enne kui neid saab renderdada. See protsess, kui seda hoolikalt ei hallata, võib põhjustada:
- Aeglased lehe laadimisajad: Suured fondifailid võivad teksti renderdamist edasi lükata, mistõttu kasutajad peavad teie sisule juurdepääsemiseks kauem ootama.
- Stiilita teksti vilkumine (FOUT): See tekib siis, kui brauser renderdab teksti esialgu varufondiga (sageli süsteemi vaikimisi font) ja seejärel vahetab selle veebifondi vastu, kui see on alla laaditud. See võib olla häiriv ja negatiivselt mõjutada kasutajakogemust.
- Nähtamatu teksti vilkumine (FOIT): Mõnel juhul võivad brauserid teksti täielikult peita, kuni veebifont on alla laaditud. Selle tulemuseks on tühi koht, kus peaks olema tekst, mis võib kasutajatele veelgi masendavam olla.
- Ebaühtlane renderdamine eri seadmetes ja brauserites: Erinevad brauserid ja operatsioonisüsteemid võivad fondi renderdamist ja laadimist käsitleda veidi erinevalt, mis põhjustab visuaalseid lahknevusi.
Nende väljakutsetega tegelemine on ülimalt oluline sujuva ja jõudsa veebikogemuse loomiseks igale külastajale, olenemata nende asukohast või tehnilisest seadistusest.
CSS-fontide laadimise anatoomia
Veebifontide laadimise aluseks on @font-face CSS-i reegel. See reegel võimaldab teil määrata kohandatud fonte, mida oma veebilehtedel kasutada.
@font-face reegel
Tüüpiline @font-face deklaratsioon näeb välja selline:
@font-face {
font-family: 'MyCustomFont';
src: url('/fonts/mycustomfont.woff2') format('woff2'),
url('/fonts/mycustomfont.woff') format('woff');
font-weight: normal;
font-style: normal;
font-display: swap;
}
Vaatame lähemalt peamisi omadusi:
font-family: See on nimi, mida kasutate fondile viitamiseks oma CSS-is (ntfont-family: 'MyCustomFont', sans-serif;).src: See määrab tee teie fondifailideni. Laia brauseriühilduvuse tagamiseks on oluline pakkuda mitut vormingut.font-weightjafont-style: Need omadused määravad fondi variandi kaalu (nt tavaline, paks) ja stiili (nt tavaline, kaldkiri).font-display: See on oluline omadus, mis kontrollib, kuidas fonte laadimisprotsessi ajal kuvatakse. Uurime selle väärtusi üksikasjalikumalt hiljem.
Fondivormingud veebiühilduvuse tagamiseks
Et tagada teie fontide renderdamine laias valikus brauserites ja seadmetes, on oluline pakkuda neid erinevates vormingutes. Kõige levinumad ja soovitatavamad vormingud on:
- WOFF2 (Web Open Font Format 2): See on kõige kaasaegsem ja tõhusam vorming, pakkudes WOFF-iga võrreldes paremat tihendust. Seda toetavad kõik suuremad kaasaegsed brauserid.
- WOFF (Web Open Font Format): TrueType'i ja OpenType'i järeltulija veebis, pakkudes head tihendust ja brauserituge.
- TrueType (.ttf) / OpenType (.otf): Kuigi neid vorminguid toetatakse laialdaselt, pakuvad nad veebikasutuseks üldiselt vähem tõhusat tihendust võrreldes WOFF-i ja WOFF2-ga.
- Embedded OpenType (.eot): Peamiselt vanemate Internet Exploreri versioonide jaoks. Tänapäeval vähem levinud, kuid võib kaaluda äärmiselt laia pärandtugi jaoks.
- SVG-fondid (.svg): Toetatud vanemates iOS-i seadmetes. Üldiselt ei soovitata uute projektide jaoks jõudluse ja renderdamise probleemide tõttu.
Parim tava: Eelistage alati WOFF2 ja WOFF vorminguid. Levinud strateegia on loetleda WOFF2 esimesena src deklaratsioonis, millele järgneb WOFF, võimaldades brauseril valida parima saadaoleva vormingu.
Jõudluse optimeerimise strateegiad
Fontide laadimise optimeerimine on mitmetahuline lähenemine. See ei hõlma mitte ainult õigete vormingute valimist, vaid ka nende strateegilist laadimist, et minimeerida nende mõju tajutavale jõudlusele.
1. Fontide alamhulkade loomine (Subsetting)
Paljud fondiperekonnad sisaldavad laia valikut märke, sealhulgas glüüfe mitme keele, matemaatiliste sümbolite ja erimärkide jaoks. Kui teie veebisait teenindab peamiselt kindlat kirjasüsteemi kasutavat publikut (nt ladina tähestikku), ei vaja te tõenäoliselt kõiki neid märke. Fontide alamhulkade loomine hõlmab kohandatud fondifailide loomist, mis sisaldavad ainult teie konkreetse kasutusjuhtumi jaoks vajalikke glüüfe.
- Eelised: Vähendab oluliselt fondifaili suurust, mis viib kiiremate allalaadimisaegadeni.
- Tööriistad: Veebitööriistad nagu Font Squirrel's Webfont Generator, Glyphhanger või käsurea tööriistad nagu
glyphhangeraitavad teil fonte alamhulkadeks jagada. Saate määrata kaasatavad märgistikud või Unicode'i vahemikud.
Globaalne kaalutlus: Kui teie veebisait on suunatud mitmele keelerühmale, peate võib-olla looma erinevate märgistike jaoks mitu alamhulka. Olge teadlik kumulatiivsest mõjust allalaaditavate fondifailide arvule.
2. Muutuvad fondid (Variable Fonts)
Muutuvad fondid on uuenduslik fondivorming, mis võimaldab ühel fondifailil sisaldada mitut kirjatüübi variatsiooni (nt erinevad kaalud, laiused ja stiilid). Selle asemel, et laadida alla eraldi failid iga fondi kaalu jaoks (nt regular.woff2, bold.woff2, italic.woff2), laadite alla ühe muutuva fondi faili.
- Eelised: Vähendab dramaatiliselt HTTP-päringute arvu ja üldist allalaadimismahtu. Pakub peeneteralist kontrolli tüpograafiliste detailide üle.
- Rakendamine: Veenduge, et teie fondifailid on saadaval OpenType-SVG või TrueType-põhises muutuva fondi vormingus. Konkreetsete variatsioonide valimiseks kasutatakse CSS-i omadusi nagu
font-weight,font-stretchja kohandatud omadusi (nt--wght). - Brauseritugi: Muutuvate fontide tugi on kaasaegsetes brauserites laialt levinud.
Näide:
/* Muutuva fondi defineerimine */
@font-face {
font-family: 'MyVariableFont';
src: url('/fonts/myvariablefont.woff2') format('woff2');
font-weight: 100 900; /* Kaalude vahemik */
font-stretch: 50% 150%; /* Laiuste vahemik */
}
body {
font-family: 'MyVariableFont', sans-serif;
font-weight: 700; /* Kaalu seadistamine */
}
h1 {
font-weight: 900; /* Rasvasem kaal */
}
.condensed-text {
font-stretch: 75%; /* Kitsam laius */
}
3. font-display ärakasutamine
font-display CSS-i omadus on revolutsiooniline FOUT-i ja FOIT-i ennetamisel. See dikteerib, kuidas fonti tuleks kuvada, kui brauser seda alla laadib.
auto: Brauser kasutab oma vaikekäitumist, mis on sageli samaväärneblock-iga.block: Brauser loob lühikese blokeerimisperioodi (tavaliselt kuni 3 sekundit). Selle aja jooksul on tekst nähtamatu. Kui fonti ei laadita selle perioodi lõpuks, kasutab see varufonti.swap: Brauser kasutab kohe varufonti. Kui veebifont on alla laaditud, vahetab see selle sisse. See on suurepärane FOIT-i ennetamiseks ja teksti kiire nähtavuse tagamiseks, kuigi see võib põhjustada FOUT-i.fallback: Brauser loob lühikese blokeerimisperioodi (nt 1 sekund), millele järgneb lühike vahetusperiood (nt 3 sekundit). Kui fonti ei laadita blokeerimisperioodi jooksul, kasutab see varufonti. Kui font laaditakse alla vahetusperioodi jooksul, kasutatakse seda; vastasel juhul jääb varufont alles.optional: Sarnanefallback-iga, kuid väga lühikese blokeerimisperioodi ja ilma vahetusperioodita. Kui fonti ei laadita esialgse blokeerimisperioodi jooksul, kasutab brauser varufonti ega ürita seda hiljem sisse vahetada. See sobib ideaalselt fontidele, mis ei ole esialgse sisu renderdamisel kriitilised või aeglase ühendusega kasutajatele, kuna see seab esikohale sisu kohese kättesaadavuse.
Soovitatav strateegia:
- Kriitiliste fontide jaoks, mis määravad teie brändi peamise ilme (nt pealkirjad, navigeerimine): kasutage
font-display: swap;võifont-display: fallback;, et tagada teksti kiire loetavus. - Vähem kriitiliste fontide jaoks (nt sekundaarne sisu, väikesed dekoratiivsed elemendid): kaaluge
font-display: optional;, et vältida kriitiliste renderdamisradade mõjutamist.
Näide:
@font-face {
font-family: 'CriticalHeadingFont';
src: url('/fonts/criticalheadingfont.woff2') format('woff2');
font-display: swap;
}
@font-face {
font-family: 'OptionalBodyFont';
src: url('/fonts/optionalbodyfont.woff2') format('woff2');
font-display: optional;
}
4. Fontide eellaadimine
Saate anda brauserile käsu laadida kriitilised fondifailid alla juba lehe laadimisprotsessi alguses, kasutades ressursivihjeid, täpsemalt preload.
- Kuidas see töötab: Lisades
<link rel="preload" ...>sildi oma HTML-i<head>ossa, annate brauserile teada, et see ressurss on oluline ja see tuleks kõrge prioriteediga alla laadida. - Eelised: Tagab, et olulised fondid on varem kättesaadavad, vähendades FOUT-i või FOIT-i tõenäosust.
- Parim tava: Eellaadige ainult need fondid, mis on teie lehe esialgseks renderdamiseks kriitilised. Liiga paljude ressursside eellaadimine võib anda vastupidise efekti.
Näide:
<!-- Oma HTML-i <head> osas -->
<link rel="preload" href="/fonts/mycustomfont.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/fonts/myotherfont.woff2" as="font" type="font/woff2" crossorigin>
Olulised kaalutlused eellaadimisel:
as="font": See on ülioluline. See ütleb brauserile, mis tüüpi ressursiga on tegemist.type="font/woff2": Määrake fondifaili MIME tüüp.crossorigin: Lisage see atribuut alati, kui eellaadite fonte teisest päritolust (nt CDN) või isegi samast päritolust, kui need võivad olla CORS-i poliitikate all. Fontide puhul peaks väärtus olemaanonymousvõi lihtsaltcrossorigin.
5. Asünkroonne fontide laadimine
Kuigi preload on tõhus, võite mõnikord soovida rohkem kontrolli selle üle, millal fonte laaditakse, eriti kui need ei ole esialgse vaate jaoks hädavajalikud. Asünkroonsed laadimistehnikad hõlmavad sageli JavaScripti.
- Web Font Loader (Typekit/Google Fonts): Teegid nagu Web Font Loader võivad pakkuda peeneteralist kontrolli fondi laadimise ja sündmuste üle. Saate määrata, millal fonte tuleks laadida, mida teha, kui laadimine ebaõnnestub, ja hallata fontide vahetamist.
- Isehostitud fondid JavaScriptiga: Saate rakendada kohandatud JavaScripti loogikat fondifailide dünaamiliseks laadimiseks.
Näide hüpoteetilise skripti abil:
// Hüpoteetiline JavaScript asünkroonseks laadimiseks
WebFont.load({
google: {
families: ['Open Sans:400,700']
},
custom: {
families: ['MyCustomFont'],
urls: ['/fonts/mycustomfont.woff2']
},
active: function() {
// Fondid on laaditud, rakendage stiile või käivitage sündmusi
document.documentElement.classList.add('fonts-loaded');
}
});
Hoiatus: Tugev sõltuvus JavaScriptist fontide laadimisel võib tekitada oma jõudluse kitsaskohad, kui seda hoolikalt ei hallata. Veenduge, et teie JavaScript on optimeeritud ja laaditakse tõhusalt.
6. Fondifailide optimeerimine
Lisaks õigete vormingute valimisele veenduge, et teie fondifailid ise oleksid optimeeritud:
- Tihendamine: WOFF2 pakub suurepärast tihendust otse karbist.
- Vahemällu salvestamine: Konfigureerige oma server fondifailide sobivaks vahemällu salvestamiseks pikkade vahemälu päistega. See tagab, et tagasipöörduvad külastajad ei pea fonte uuesti alla laadima.
- Gzip/Brotli tihendamine: Veenduge, et teie server on konfigureeritud fondifailide (ja ka muude varade) tihendamiseks Gzipi või Brotli abil enne nende kliendile saatmist. Brotli pakub üldiselt paremat tihendust kui Gzip.
7. Süsteemifontide komplektid
Teatud stsenaariumide puhul, eriti kui tegemist on kriitilise sisuga väga madala ribalaiusega ühendustel või maksimaalse esialgse loetavuse tagamiseks, on süsteemifontide kasutamine elujõuline strateegia. Saate määratleda fondikomplekti, mis sisaldab levinud süsteemifonte, pakkudes sujuvat varuvarianti.
Näide:
body {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
}
See komplekt eelistab erinevates operatsioonisüsteemides kohalikke süsteemifonte, tagades teksti kohese renderdamise ilma allalaadimisviivitusteta. Saate seda kombineerida hiljem laaditud veebifontidega progresseeruva täiustamise lähenemise jaoks.
FOUT-i ja FOIT-i ennetamine: strateegiline lähenemine
Eesmärk on tasakaalustada tajutavat jõudlust (kui kiiresti leht *tundub*) tegeliku jõudlusega (kui kiiresti leht muutub kasutatavaks). Siin on strateegiline jaotus:
1. Eelistage kriitilisi fonte
Tehke kindlaks esialgse kasutajakogemuse jaoks olulised fondid:
- Pealkirjad
- Navigatsioonielemendid
- Võtmetähtsusega kasutajaliidese elemendid
Nende jaoks kasutage:
font-display: swap;võifont-display: fallback;<link rel="preload">WOFF2 versioonide jaoks.
See tagab teksti kiire nähtavuse, isegi kui see tähendab lühikest varufondi vilkumist.
2. Mittekriitiliste fontide haldamine
Põhiteksti või vähem silmapaistvate elementide jaoks kasutatavaid fonte saab käsitleda vähema kiireloomulisusega:
- Kasutage
font-display: optional; - Vältige nende fontide eellaadimist, kui see pole absoluutselt vajalik.
See strateegia tagab, et kui need fondid laadivad aeglaselt, ei blokeeri nad olulisema sisu renderdamist.
3. Arvestage kasutaja kontekstiga
Oma fondi laadimisstrateegia kujundamisel mõelge oma globaalsele publikule:
- Võrgukiirused: Aeglasema internetiühendusega piirkondade kasutajad on tundlikumad suurte fondifailide suhtes. Eelistage tõhusaid vorminguid nagu WOFF2 ja alamhulkade loomist.
- Seadme võimekus: Mobiilseadmetel võib olla vähem töötlemisvõimsust ja aeglasemad allalaadimiskiirused kui lauaarvutitel.
- Keel ja märgistikud: Kui teie sait toetab mitut keelt, veenduge, et laadite ainult iga keele jaoks vajalikud märgistikud või pakute keelespetsiifilisi fondivalikuid.
4. Testimine ja seire
Parim viis tagada, et teie optimeerimised on tõhusad, on range testimine:
- Brauseri arendajatööriistad: Kasutage oma brauseri arendajatööriistade vahekaarte Network ja Performance, et uurida fondide allalaadimisaegu, renderdamiskäitumist ja tuvastada kitsaskohti. Simuleerige erinevaid võrgutingimusi (nt Fast 3G, Slow 3G).
- Jõudluse auditeerimise tööriistad: Kasutage tööriistu nagu Google PageSpeed Insights, GTmetrix ja WebPageTest. Need tööriistad pakuvad üksikasjalikke aruandeid teie saidi jõudluse kohta, sealhulgas soovitusi fondi laadimiseks.
- Reaalajas kasutajate seire (RUM): Rakendage RUM-tööriistu, et koguda jõudlusandmeid tegelikelt kasutajatelt erinevates seadmetes, brauserites ja asukohtades. See annab kõige täpsema pildi teie saidi jõudlusest.
Täiustatud tehnikad ja kaalutlused
1. HTTP/2 ja HTTP/3
Kaasaegsed HTTP-protokollid (HTTP/2 ja HTTP/3) pakuvad multipleksimist, mis võimaldab mitme päringu ja vastuse saatmist ühe ühenduse kaudu. See võib vähendada paljude väikeste fondifailide (nt erinevad kaalud ja stiilid) allalaadimise üldkulusid.
- Eelis: Vähendab mitme fondivariatsiooni taotlemise karistust, muutes tehnikad nagu eraldi failide kasutamine erinevate kaalude jaoks teostatavamaks.
- Kaalutlus: Veenduge, et teie server on konfigureeritud neid protokolle kasutama.
2. Kriitiline CSS
Kriitilise CSS-i kontseptsioon hõlmab lehe esimese vaate renderdamiseks vajaliku CSS-i tuvastamist ja siseselt paigutamist. Kui teie kohandatud fonte kasutatakse selles kriitilises alas, saate lisada nende @font-face deklaratsioonid kriitilise CSS-i sisse.
- Eelis: Tagab, et fondi definitsioonid on saadaval võimalikult varakult, mis võib aidata kaasa kiiremale renderdamisele.
- Ettevaatust: Hoidke kriitiline CSS lühike, et vältida esialgse HTML-vastuse paisumist.
3. Fontide laadimise API (eksperimentaalne)
CSS-i fontide laadimise API pakub JavaScripti liideseid fontide staatuse pärimiseks ja nende laadimise haldamiseks. Kuigi see on alles arenev ja pole universaalselt toetatud, pakub see võimsat programmilist kontrolli.
- Näide: Kasutades
document.fonts.ready, et teada saada, millal kõik fondid on laaditud.
Kokkuvõte: parema globaalse kasutajakogemuse loomine
CSS-fontide laadimise meisterlikkus on oluline oskus igale veebiarendajale, kes soovib luua suure jõudlusega ja kasutajasõbralikke veebisaite. Mõistes fondivormingute nüansse, kasutades optimeerimistehnikaid nagu alamhulkade loomine ja muutuvad fondid, kasutades strateegiliselt font-display-d ja võimendades ressursivihjeid nagu preload, saate oluliselt parandada oma saidi laadimiskiirust ja vältida häirivaid visuaalseid nihkeid nagu FOUT ja FOIT.
Pidage meeles, et alati arvestage oma globaalse publikuga. See, mis töötab optimaalselt kiire lairibaühendusega kasutajatele, ei pruugi olla ideaalne neile, kes kasutavad aeglasemaid ja katkendlikumaid ühendusi. Läbimõeldud lähenemine fondi laadimisele koos pideva testimise ja seirega tagab, et teie veebisait pakub järjepidevat, jõudsat ja visuaalselt meeldivat kogemust igale kasutajale, kõikjal.
Põhilised järeldused:
- Eelistage WOFF2: See on kõige tõhusam vorming.
- Kasutage
font-display: Kontrollige renderdamist fondi laadimise ajal (swapvõioptionalon sageli parimad). preloadkriitilisi fonte: Laadige olulised fondid varakult alla.- Looge fontidest alamhulgad: Vähendage failisuurusi, kaasates ainult vajalikud glüüfid.
- Avastage muutuvaid fonte: Väiksemate failisuuruste ja suurema tüpograafilise kontrolli saavutamiseks.
- Testige põhjalikult: Simuleerige erinevaid võrgutingimusi ja seadmeid.
Neid strateegiaid rakendades ehitate kiiremaid, vastupidavamaid ja ligipääsetavamaid veebisaite, mis vastavad globaalse kasutajaskonna mitmekesistele vajadustele.