Ładowanie fontów webowych: font-display, preload i subsetting

Ładowanie fontów webowych

Ładowanie fontów: font-display, preload, subsetting | We.Inc

Zobacz w symulatorze osi czasu, co robi każda wartość font-display, a potem użyj preload i preconnect, podziel font przez unicode-range i dopasuj metryki fontu zastępczego, aby zatrzymać przesunięcia układu.

Szybkie ładowanie fontów sprowadza się do czterech ruchów: wcześnie poinformuj przeglądarkę o foncie (preconnect lub preload), wysyłaj małe pliki WOFF2 zawierające tylko potrzebne znaki, wybierz wartość font-display pasującą do tekstu i dopasuj rozmiar fontu zastępczego, aby nic nie skakało. Użyj font-display: optional, gdy najważniejsze jest uniknięcie przesunięć układu.

Wartości font-display w skrócie

Fonty to jeden z niewielu zasobów, które potrafią ukryć Twój tekst albo przestawić układ strony. Przeciągnij suwak poniżej, aby ustawić, ile czasu font potrzebuje na dotarcie, i obserwuj, co każda wartość font-display pokazuje w każdej chwili, a potem skopiuj wzorce ładowania, które utrzymują stronę stabilną.

Najczęściej zadawane pytania

Co robi font-display: swap?

Daje fontowi bardzo krótki okres blokady, który specyfikacja CSS Fonts zaleca utrzymywać na poziomie 100ms lub mniej, oraz nieskończony okres podmiany. Tekst pojawia się w foncie zastępczym niemal od razu i przełącza się na font webowy, kiedy tylko ten się załaduje.

Czy font-display: swap szkodzi CLS?

Może. Jeśli font zastępczy i font webowy mają różne szerokości lub wysokości linii, późna zmiana przesuwa tekst i treść pod nim. Napraw to przez size-adjust oraz nadpisania ascent, descent i line-gap w foncie zastępczym albo użyj optional.

Dlaczego font z preload pobiera się dwa razy?

Fonty są pobierane w anonimowym trybie CORS, więc link preload potrzebuje atrybutu crossorigin, nawet gdy plik jest w tym samym originie. Bez niego preload nie pasuje do właściwego żądania i font jest pobierany ponownie.

Czy używać preload dla Google Fonts?

Zwykle nie. web.dev ostrzega, że preload omija część własnej negocjacji treści przeglądarki, w tym unicode-range, więc możesz pobrać podzbiór, którego strona nigdy nie użyje. Zamiast tego użyj preconnect do fonts.googleapis.com i fonts.gstatic.com albo hostuj font sam i preloaduj własny plik.

Jak unicode-range oszczędza bajty?

Gdy reguła @font-face ma unicode-range, przeglądarka pobiera ten plik tylko wtedy, gdy strona używa co najmniej jednego znaku z zakresu. Podziel font na pliki łacińskie, cyrylickie lub greckie, a każdy odwiedzający pobierze tylko te pisma, które są na stronie.

Oś czasu wyświetlania fontu

Dlaczego późna podmiana powoduje przesunięcia układu

Subsetting

Font hostowany samodzielnie z preload

Preload jednego pliku potrzebnego na pierwszym ekranie

as, type i crossorigin muszą być obecne. Reguła @font-face jest wstawiona bezpośrednio w head, więc zostaje od razu wykryta.

Podział plików przez unicode-range

Podzbiory łaciński i cyrylicki jednej rodziny

Obie reguły mają wspólną nazwę rodziny. Strona napisana wyłącznie po angielsku nigdy nie pobiera pliku cyrylickiego.

Font zastępczy o dopasowanym rozmiarze

Dopasowany lokalny font zastępczy ograniczający przesunięcia układu

Liczby są przykładowe: zmierz własny font względem zastępczego i dostrajaj je, aż oba się pokryją.

Google Fonts z preconnect i podzbiorem dla jednego nagłówka

Drugi arkusz stylów prosi tylko o litery z tekstu logo, dzięki czemu ten plik jest malutki.

Symulator osi czasu font-display

Widok startowy: font ładuje się 1.5 sekundy; przeciągnij suwak, aby to zmienić. Szary to niewidoczny tekst, bursztynowy font zastępczy, niebieski font webowy.

Font dociera po {n}s

Font webowy nie jest użyty przy tym wyświetleniu strony

Widoczna podmiana: tekst może się przelać

Brak widocznej podmiany

Skala: od 0 do 5 sekund. Przy optional specyfikacja pozwala przeglądarce przerwać późne pobieranie albo dokończyć je z bardzo niskim priorytetem.

Okresy zalecane przez specyfikację

Wartość

Okresy

Zacznij za darmo · Bez karty kredytowej

Powiązane: Poradniki

Produkt

Dla kogo

Funkcje

Zasoby

Firma

Mapa strony