Веб-шрифты в CSS
Вы уже знаете font-family, размер и насыщенность. Веб-шрифты подгружают начертание, которого может не быть на устройстве посетителя — объявите его через @font-face, используйте имя семейства как любой другой шрифт и спокойно завершите запасным.
Части @font-face
📊 @font-face одним взглядом
| Часть | Повседневная роль |
|---|---|
font-family |
Имя, которое вы придумываете и затем используете в CSS |
src |
Где лежат файл(ы) шрифта (url(...) и часто format(...)) |
font-weight / font-style |
Какое начертание представляет этот файл (regular, bold, italic…) |
font-display |
Как ведёт себя текст, пока шрифт грузится (например swap) |
Два спокойных шага: зарегистрируйте начертание через @font-face, затем вызовите то же имя семейства в обычных правилах. Пропустите один — стек так и не найдёт свой файл.
Минимальный @font-face
Дайте начертанию понятное имя и укажите src на файл шрифта на вашем сайте (или CDN).
Базовый @font-face
css@font-face {
font-family: "Site Sans";
src: url("/fonts/site-sans.woff2") format("woff2");
font-weight: 400;
font-style: normal;
}
Предложите больше одного формата
Современные браузеры предпочитают woff2. Список woff следом покрывает более старые браузеры. Лучший формат — первым.
сначала woff2, потом woff
css@font-face {
font-family: "Site Sans";
src:
url("/fonts/site-sans.woff2") format("woff2"),
url("/fonts/site-sans.woff") format("woff");
font-weight: 400;
font-style: normal;
}
font-display — покажите текст раньше
font-display: swap позволяет браузеру сначала показать запасной текст, а затем подменить веб-шрифт, когда он придёт — часто лучше длинной невидимой дыры.
Display swap
css@font-face {
font-family: "Site Sans";
src: url("/fonts/site-sans.woff2") format("woff2");
font-weight: 400;
font-style: normal;
font-display: swap;
}
Используйте объявленное семейство
После @font-face вызывайте то же имя font-family в правилах — и держите общий запасной стек.
Применить своё семейство
cssbody {
font-family: "Site Sans", system-ui, "Segoe UI", sans-serif;
font-size: 1rem;
line-height: 1.6;
}
Спокойная привычка самостоятельного хостинга
Хостите только нужные насыщенности, предпочитайте woff2, задавайте font-display и всегда оставляйте системный/общий стек.
Заголовок с загруженным bold
css@font-face {
font-family: "Site Sans";
src: url("/fonts/site-sans-bold.woff2") format("woff2");
font-weight: 700;
font-style: normal;
font-display: swap;
}
h1 {
font-family: "Site Sans", Georgia, serif;
font-weight: 700;
}
Попробуйте сами
- Напишите блок
@font-faceс своим именемfont-familyиsrcтипаwoff2. - Добавьте вторую строку
srcдляwoff. - Задайте
font-display: swap. - Примените
"Your Name", sans-serifкbody. - Если есть bold-файл, добавьте отдельный
@font-faceдля веса700— затемfont-weight: 700на заголовке.
Частые ошибки
- Объявить
@font-face, но никогда не использовать то же имя вfont-family - Пропустить запасной стек (ломается, если файл не загрузится)
- Грузить много неиспользуемых насыщенностей и стилей (медленные страницы)
- Долго оставлять текст невидимым без стратегии
font-display - Смешивать этот урок с text-shadow / эффектами (они дальше)
Кратко
@font-faceрегистрирует своё имя семейства и указывает на файлы шрифта- Предпочитайте
woff2, опционально с запаснымwoff font-display: swapчасто сохраняет читаемость текста при загрузке- Используйте то же имя семейства в CSS с системным/общим запасным
- Грузите только нужные начертания; эффекты вроде text-shadow — следующий урок
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху