
Шрифт напрямую влияет на восприятие сайта: от удобства чтения до общего впечатления от дизайна. Правильное подключение и настройка шрифтов через CSS позволяет сохранить единый стиль и избежать визуальных ошибок при отображении контента в разных браузерах.
Для использования нестандартных шрифтов в CSS применяют правило @font-face, которое позволяет подключать локальные файлы шрифтов в форматах WOFF2, WOFF, TTF или OTF. При этом важно учитывать поддержку форматов различными браузерами и корректно задавать пути к файлам.
Если используется шрифт из внешнего источника, например Google Fonts, подключение осуществляется через ссылку в коде или с помощью импорта в CSS. Важно не только вставить шрифт, но и задать резервные варианты через свойство font-family, чтобы текст оставался читаемым при сбое загрузки основного шрифта.
Кроме базового подключения, следует учитывать такие параметры, как font-display для управления отображением при загрузке, а также кэширование шрифтов для ускорения работы сайта. Эти настройки помогают улучшить стабильность и качество отображения текста без лишней нагрузки на пользователя.
Подключение локального шрифта с помощью @font-face

Правило @font-face используется для подключения локальных файлов шрифтов, хранящихся в папке проекта. Оно позволяет задать собственный шрифт без зависимости от внешних источников. Файлы шрифтов обычно размещаются в каталоге /fonts/ рядом с CSS-файлом.
Пример подключения локального шрифта:
@font-face {
font-family: 'MyFont';
src: url('fonts/MyFont.woff2') format('woff2'),
url('fonts/MyFont.woff') format('woff');
font-weight: normal;
font-style: normal;
}
Затем шрифт применяется через свойство font-family в стилях:
body {
font-family: 'MyFont', Arial, sans-serif;
}
Рекомендуется использовать несколько форматов файлов (WOFF2, WOFF, TTF), чтобы обеспечить поддержку во всех браузерах. Формат WOFF2 предпочтителен благодаря меньшему размеру и быстрой загрузке. Название шрифта в font-family должно совпадать с указанным в @font-face.
Важно сохранять относительные пути к шрифтам и проверять, чтобы структура папок совпадала с путями, прописанными в CSS. При подключении нескольких начертаний (жирный, курсив) каждое из них задается отдельным правилом @font-face с собственными параметрами font-weight и font-style.
Использование веб-шрифтов из Google Fonts

Сервис Google Fonts предоставляет бесплатные веб-шрифты, которые можно подключить к сайту без загрузки файлов в проект. Это ускоряет настройку и снижает нагрузку на сервер. Для выбора шрифта достаточно перейти на сайт fonts.google.com, подобрать нужный стиль и скопировать код подключения.
Шрифт можно вставить через тег <link> в разделе <head> HTML-документа:
<link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap" rel="stylesheet">
Альтернативный способ – импортировать шрифт прямо в CSS с помощью @import:
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap');
После подключения шрифт указывается в стилях через font-family:
body {
font-family: 'Roboto', Arial, sans-serif;
}
Рекомендуется использовать параметр display=swap, чтобы текст оставался видимым при загрузке шрифта. Для стабильной работы шрифты следует подключать только в необходимых начертаниях, избегая избыточных стилей, которые увеличивают размер CSS и время загрузки страницы.
Правильное указание форматов файлов шрифтов
При подключении шрифта через @font-face важно указать корректные форматы файлов, чтобы обеспечить отображение текста во всех браузерах. Разные движки поддерживают собственные типы шрифтов, поэтому рекомендуется использовать несколько форматов одновременно.
Оптимальный набор включает файлы WOFF2 и WOFF. Первый отличается высокой степенью сжатия и поддерживается всеми современными браузерами, второй – более универсален и подходит для старых версий. Для максимальной совместимости можно добавить TTF или OTF, но их следует использовать только при необходимости.
Пример подключения нескольких форматов:
@font-face {
font-family: 'CustomFont';
src: url('fonts/CustomFont.woff2') format('woff2'),
url('fonts/CustomFont.woff') format('woff'),
url('fonts/CustomFont.ttf') format('truetype');
font-weight: 400;
font-style: normal;
}
Порядок перечисления имеет значение: сначала указываются наиболее современные и сжатые форматы. Каждый файл должен иметь правильное расширение и совпадать с фактическим типом данных, иначе браузер пропустит подключение. Для удобства хранения рекомендуется создавать отдельную папку fonts и использовать короткие, понятные имена файлов без пробелов.
Задание резервных шрифтов в font-family
Резервные шрифты задаются для случаев, когда основной шрифт недоступен или не поддерживается браузером. Это позволяет сохранить читаемость текста и стабильность верстки. Свойство font-family принимает несколько значений, указанных через запятую, в порядке приоритета.
Пример правильного задания шрифтов:
body {
font-family: 'Open Sans', 'Segoe UI', Arial, sans-serif;
}
Первым указывается основной шрифт, затем – близкие по стилю альтернативы, последним – универсальное семейство (serif, sans-serif, monospace). Браузер автоматически выберет первый доступный вариант из списка. Если ни один из перечисленных шрифтов не найден, будет применено универсальное семейство.
Для сайтов с кириллическим текстом рекомендуется выбирать резервные шрифты, поддерживающие этот набор символов. Например, сочетание ‘Roboto’, ‘Arial’, sans-serif обеспечивает одинаковое отображение на большинстве устройств и платформ. Нельзя оставлять единственный шрифт без запасных, особенно при подключении внешних ресурсов.
Следует учитывать визуальное сходство шрифтов: у резервных вариантов должна быть близкая высота строк, толщина символов и пропорции. Это снижает вероятность смещения элементов при замене недоступного шрифта и сохраняет единый вид страницы.
Подключение нескольких начертаний и стилей одного шрифта

При использовании шрифта с разными вариантами начертания важно подключать каждое из них отдельно через правило @font-face. Это обеспечивает корректное отображение текста при применении свойств font-weight и font-style в стилях. Каждый файл должен соответствовать конкретному весу и стилю.
Пример подключения нескольких начертаний одного шрифта:
@font-face {
font-family: 'Inter';
src: url('fonts/Inter-Regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
}
@font-face {
font-family: 'Inter';
src: url('fonts/Inter-Bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
}
@font-face {
font-family: 'Inter';
src: url('fonts/Inter-Italic.woff2') format('woff2');
font-weight: 400;
font-style: italic;
}
Все начертания должны иметь одинаковое значение font-family, чтобы их можно было вызывать одной строкой в стилях. Вес и стиль задаются только при описании шрифта в @font-face, а не в коде HTML. Это позволяет браузеру автоматически подбирать нужный вариант при изменении жирности или наклона текста.
Подключение только нужных файлов снижает объем данных и ускоряет загрузку страницы. Если сайт использует ограниченное количество начертаний, остальные версии шрифта можно не добавлять, чтобы не перегружать CSS и не увеличивать количество сетевых запросов.
Настройка отображения шрифтов через font-display

Свойство font-display определяет, как шрифт будет отображаться при загрузке, особенно если подключение задерживается. Оно используется в правиле @font-face и влияет на поведение браузера, позволяя управлять видимостью текста до полной загрузки шрифта.
Основные значения font-display:
| Значение | Описание |
|---|---|
| auto | Браузер выбирает стратегию загрузки по умолчанию. |
| block | Сначала текст скрыт, затем отображается шрифт после загрузки. |
| swap | Текст сразу показывается с резервным шрифтом, а затем заменяется на основной. |
| fallback | Кратковременная задержка для загрузки шрифта, затем используется резервный вариант. |
| optional | Шрифт загружается только при высокой скорости соединения, иначе используется резервный. |
Пример применения:
@font-face {
font-family: 'CustomFont';
src: url('fonts/CustomFont.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}
Значение swap рекомендуется для сайтов с большим объемом текста, чтобы избежать пустых блоков и обеспечить быструю читаемость. Использование fallback или optional подходит для мобильных устройств с ограниченной скоростью соединения.
Оптимизация загрузки и кэширования шрифтов

Для ускорения отображения текста и снижения нагрузки на сервер важно правильно организовать загрузку и кэширование шрифтов. Несколько рекомендаций помогают улучшить производительность:
- Использовать современные форматы файлов, такие как WOFF2, которые имеют меньший размер по сравнению с TTF или OTF.
- Подключать только необходимые начертания и веса шрифта, исключая лишние версии.
- Применять свойство font-display: swap, чтобы текст отображался сразу с резервным шрифтом, пока основной загружается.
Для кэширования следует настроить HTTP-заголовки на сервере:
- Установить Cache-Control на длительный срок (например, 1 год) для неизменяемых файлов шрифтов.
- Использовать ETag или Last-Modified для проверки актуальности файлов при повторных посещениях.
Дополнительно ускоряет загрузку предварительная загрузка шрифтов с помощью <link rel=»preload»>:
<link rel="preload" href="fonts/CustomFont.woff2" as="font" type="font/woff2" crossorigin>
Эти меры сокращают время отображения текста, уменьшают количество сетевых запросов и обеспечивают стабильное отображение шрифтов на всех устройствах.
Вопрос-ответ:
Как подключить локальный шрифт через CSS?
Для подключения локального шрифта используют правило @font-face. В нём указывают название шрифта через font-family, путь к файлам через src и при необходимости задают вес и стиль. Рекомендуется использовать форматы WOFF2 и WOFF для поддержки современных браузеров. После подключения шрифт применяют через свойство font-family в стилях CSS.
В чём разница между локальными шрифтами и Google Fonts?
Локальные шрифты хранятся на сервере проекта и не зависят от внешних ресурсов, что позволяет контролировать их доступность. Google Fonts — это внешние шрифты, подключаемые через ссылку или импорт в CSS. Они сразу доступны на разных устройствах, но требуют сетевого запроса и могут немного замедлять начальную загрузку страницы.
Зачем нужно задавать резервные шрифты в font-family?
Резервные шрифты обеспечивают корректное отображение текста, если основной шрифт не загрузился. Их перечисляют через запятую после основного шрифта, начиная с ближайшего по стилю аналога и заканчивая универсальным семейством, например sans-serif. Это предотвращает смещение блоков текста и сохраняет читаемость.
Как правильно подключить несколько начертаний одного шрифта?
Каждое начертание (например, жирный, курсив) подключают отдельным правилом @font-face, задавая одинаковое font-family и соответствующие параметры font-weight и font-style. В стилях можно применять нужный вариант через эти свойства, и браузер подберёт подходящий файл автоматически.
Как ускорить загрузку шрифтов и избежать пустого текста на странице?
Для ускорения используют свойство font-display с значением swap, чтобы текст показывался сразу с резервным шрифтом, пока основной загружается. Дополнительно можно подключать только нужные начертания, использовать сжатые форматы WOFF2, включать кэширование через HTTP-заголовки и предварительную загрузку с <link rel=»preload»>.
