
Тег <link> в HTML применяется для подключения внешних ресурсов к документу. Чаще всего он используется для связи страницы с таблицами стилей, но также подходит для указания иконок, предзагрузки шрифтов, подключения RSS-лент и других вспомогательных файлов. Этот элемент размещается исключительно внутри <head> и не имеет закрывающего тега.
Ключевыми атрибутами являются rel и href. Первый определяет тип связи документа с ресурсом, например rel=»stylesheet» для CSS или rel=»icon» для фавиконки. Второй указывает путь к файлу. Дополнительно могут использоваться атрибуты type, media, sizes и as, что позволяет более точно контролировать загрузку и применение подключаемого ресурса.
Практическая ценность тега <link> заключается в оптимизации структуры веб-документа и ускорении работы сайта. Например, использование rel=»preload» помогает заранее загрузить критические файлы, такие как шрифты или основные стили, сокращая время отрисовки страницы. А настройка иконок через rel=»apple-touch-icon» или rel=»manifest» обеспечивает корректное отображение сайта на мобильных устройствах и при добавлении на главный экран.
Подключение CSS-стилей с помощью тега link
Для подключения внешнего файла со стилями используется тег <link>, который размещается внутри секции <head>. Основной атрибут rel должен иметь значение stylesheet, указывающее на таблицу стилей.
Пример подключения: <link rel="stylesheet" href="styles.css">. Атрибут href определяет путь к файлу. Можно использовать как относительные пути (css/style.css), так и абсолютные (https://example.com/style.css).
При необходимости подключения нескольких таблиц стилей теги <link> указываются последовательно. При конфликте правил приоритет получает последняя подключённая таблица.
Атрибут media позволяет ограничить применение стилей определёнными условиями. Например: <link rel="stylesheet" href="print.css" media="print"> загрузит таблицу только для печати.
В отличие от тега <style>, использование <link> обеспечивает кэширование стилей браузером и упрощает поддержку кода за счёт разделения структуры и оформления.
Использование атрибута rel для указания назначения связи
Атрибут rel определяет тип связи между текущим документом и ресурсом, подключённым через <link>. Корректное значение этого атрибута позволяет браузеру и поисковым системам правильно интерпретировать назначение ресурса.
Для подключения таблиц стилей используется rel="stylesheet". Без этого указания CSS-файл не будет применён к странице.
Для отображения фавиконки применяется rel="icon", а для разных устройств можно задавать rel="apple-touch-icon".
Значения rel="preload" и rel="prefetch" оптимизируют загрузку: первое подгружает критичные файлы до рендера, второе подготавливает ресурсы, которые могут понадобиться позже.
При работе с RSS-лентами используется rel="alternate" в сочетании с type="application/rss+xml", что даёт возможность клиентам новостей автоматически находить поток.
Рекомендуется использовать только стандартизированные значения rel, чтобы избежать конфликтов и обеспечить корректную обработку браузерами.
Зачем нужен атрибут href и как указывать путь к файлу

Атрибут href в теге <link> определяет местоположение подключаемого ресурса. Без него браузер не сможет найти и загрузить файл, например таблицу стилей или иконку сайта.
Путь к файлу может быть двух типов:
- Абсолютный – указывает полный URL с протоколом (
https://). Используется для подключения ресурсов, размещённых на другом сайте или CDN. - Относительный – задаётся относительно текущего документа. Такой вариант чаще применяют для локальных файлов внутри проекта.
Примеры относительных путей:
href="style.css"– файл лежит в той же папке, что и HTML-документ.href="css/style.css"– файл находится в подпапкеcss.href="../style.css"– файл расположен на уровень выше текущей директории.
Рекомендации по использованию:
- Для ресурсов внутри проекта используйте относительные пути – они сохраняют работоспособность сайта при переносе на другой домен.
- Для библиотек и шрифтов удобнее указывать абсолютные ссылки на CDN, чтобы ускорить загрузку.
- Избегайте пробелов и кириллических символов в именах файлов и каталогов, так как это может вызвать ошибки загрузки.
Подключение иконки сайта (favicon) через link

Для отображения иконки сайта в браузере используется тег <link> с атрибутами, указывающими тип и расположение файла.
- Формат
.ico– поддерживается всеми браузерами, оптимальный вариант для максимальной совместимости. - Форматы
.pngи.svg– предпочтительны для современных браузеров, обеспечивают высокое качество изображения.
Базовое подключение:
<link rel="icon" href="/favicon.ico" type="image/x-icon">
Для расширенной поддержки можно указать несколько вариантов:
<link rel="icon" href="/favicon.png" type="image/png" sizes="32x32">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
- Разместите иконку в корне сайта, чтобы браузеры автоматически её находили.
- Используйте атрибут
sizesдля указания разрешения, что особенно важно при подключении нескольких версий. - Для адаптивных интерфейсов добавьте
favicon.svg, так как он масштабируется без потери качества.
Корректное подключение гарантирует правильное отображение иконки во вкладках, закладках и списке открытых страниц.
Использование link для предзагрузки ресурсов

Атрибут rel="preload" позволяет браузеру заранее загрузить критичные ресурсы, необходимые для корректного отображения страницы: шрифты, стили, скрипты, изображения. Такой подход снижает задержку при первом рендеринге и улучшает показатель Largest Contentful Paint (LCP).
Для шрифтов используется комбинация rel="preload" и атрибута as="font". Например: <link rel="preload" href="/fonts/Roboto.woff2" as="font" type="font/woff2" crossorigin>. Без crossorigin возможны ошибки загрузки, если сервер возвращает CORS-заголовки.
Для стилей указывается as="style", что гарантирует их загрузку до начала рендеринга: <link rel="preload" href="/css/main.css" as="style">. Чтобы браузер применил файл, требуется отдельный <link rel="stylesheet">.
Скрипты предзагружаются через as="script": <link rel="preload" href="/js/app.js" as="script">. Это уменьшает задержку при выполнении, если скрипт подключается асинхронно или отложено.
Важно указывать правильное значение атрибута as, иначе браузер может загрузить ресурс повторно. Для динамического контента рекомендуется использовать rel="prefetch", а не preload, чтобы не тратить трафик на неиспользуемые файлы.
Отличие link от тега style и сценарии их применения

Тег <link> подключает внешние таблицы стилей, а <style> содержит CSS-код прямо в документе. Их назначение различается: первый используется для загрузки отдельных файлов, второй – для встраивания правил непосредственно в HTML.
| Критерий | <link> | <style> |
|---|---|---|
| Расположение CSS | В отдельном .css файле | Внутри HTML-документа |
| Кэширование | Файл кэшируется браузером и ускоряет загрузку при повторных посещениях | Не кэшируется, загружается заново при каждом открытии |
| Поддержка медиа-запросов | Через атрибут media можно подключать разные стили для печати, экрана и устройств |
Медиа-запросы пишутся только внутри CSS-кода |
| Поддержка нескольких файлов | Можно подключить любое количество таблиц стилей | Неудобно для больших проектов – код разрастается |
| Применение в CMS и шаблонах | Позволяет легко обновлять стили без изменения HTML | Изменение требует правки шаблона или страницы |
<link> целесообразно использовать при разработке масштабируемых сайтов, где важно кэширование и единое управление стилями. <style> подходит для тестирования, изолированных фрагментов или когда нужно быстро применить локальные правила без создания отдельного файла.
Поддержка разных типов медиа с помощью атрибута media

Атрибут media в теге <link> определяет, при каких условиях будет применяться подключаемый ресурс, чаще всего таблица стилей. Это позволяет загружать разные CSS-файлы в зависимости от характеристик устройства или окна браузера.
Для экранов с ограниченной шириной полезно использовать выражения: <link rel="stylesheet" href="mobile.css" media="screen and (max-width: 600px)">. В этом случае стили загрузятся только при просмотре на устройствах с небольшим экраном.
Часто применяют несколько условий одновременно: <link rel="stylesheet" href="highres.css" media="screen and (min-width: 1200px) and (min-resolution: 2dppx)">. Это обеспечивает корректное отображение интерфейса на широкоформатных и высокоплотных дисплеях.
Использование атрибута media снижает нагрузку на браузер, исключая ненужные стили, и позволяет оптимизировать поведение сайта для различных сред: печати, мобильных устройств, телевизоров или экранов с особыми характеристиками.
Использование link для подключения шрифтов и внешних ресурсов

Тег <link> применяется для загрузки шрифтов из внешних каталогов, например Google Fonts. Для этого указывается атрибут rel="stylesheet" и ссылка на CSS-файл шрифта. Пример: <link href="https://fonts.googleapis.com/css2?family=Roboto&display=swap" rel="stylesheet">. Подключенный шрифт становится доступен в стилях через свойство font-family.
Помимо шрифтов, <link> используется для подключения иконок (атрибут rel="icon"), файлов манифеста для PWA (rel="manifest"), предзагрузки ресурсов (rel="preload"), а также для установления приоритетных соединений с внешними доменами (rel="preconnect", rel="dns-prefetch"). Такие способы позволяют ускорить загрузку страниц и уменьшить задержки при обращении к сторонним сервисам.
При работе с <link> важно указывать корректный MIME-тип в атрибуте type (например, type="text/css"), использовать атрибут crossorigin для ресурсов с другого домена и применять media для загрузки стилей только при определённых условиях, что снижает нагрузку на клиента.
Вопрос-ответ:
Для чего вообще нужен тег <link> в HTML?
Этот тег используется для подключения внешних ресурсов к веб-странице. Чаще всего его применяют для подключения таблиц стилей (CSS), чтобы задавать оформление элементов. Но помимо стилей через <link> можно подключать фавиконки, шрифты и другие связанные документы.
Можно ли вставить тег <link> в тело страницы?
Нет, тег <link> корректно работает только внутри секции <head>. Если разместить его в <body>, браузер может проигнорировать его или обработать неправильно. Это связано с тем, что такие ресурсы должны быть загружены до отображения основного содержимого.
Чем отличается атрибут rel=»stylesheet» от других значений rel?
Атрибут rel указывает тип связи между текущим документом и подключаемым ресурсом. Когда используется значение «stylesheet», браузер понимает, что нужно загрузить файл CSS. Но у rel есть и другие значения, например «icon» для фавиконки или «preload» для предварительной загрузки файлов. Таким образом, выбор значения зависит от того, какой ресурс подключается.
Что произойдет, если подключить несколько CSS-файлов через разные теги <link>?
Браузер последовательно загрузит все указанные файлы. При этом стили из последующих файлов могут переопределять правила из предыдущих. Это обычная практика: разработчики разделяют стили на базовые, адаптивные и дополнительные, а затем подключают их в нужном порядке.
Можно ли через тег <link> подключать не только стили, но и, например, JavaScript?
Нет, JavaScript-файлы подключаются через тег <script>. Тег <link> предназначен именно для ресурсов, которые связаны с документом и обрабатываются иначе — например, стили, иконки, карты сайта, RSS-ленты. Для скриптов нужно использовать правильный тег, чтобы код выполнялся.
