<link> HTML-элемент ссылки на внешний ресурс
Базовый уровень Широко доступно *
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в разных версиях браузеров. Она доступна во всех браузерах с июля 2015 года.
* Некоторые части этой функции могут поддерживаться в разной степени.
Элемент <link> HTML задаёт отношения между текущим документом и внешним ресурсом. Чаще всего этот элемент используется для подключения таблиц стилей, но также применяется для добавления значков сайта (как значков в стиле «favicon», так и значков для главного экрана и приложений на мобильных устройствах) и в других целях.
Попробуйте
<link href="/shared-assets/misc/link-element-example.css" rel="stylesheet" /> <p>This text will be red as defined in the external stylesheet.</p> <p style="color: blue"> The <code>style</code> attribute can override it, though. </p>
Чтобы подключить внешнюю таблицу стилей, добавьте элемент <link> внутрь <head>, как показано ниже:
<link href="main.css" rel="stylesheet" />
В этом примере путь к таблице стилей указан в атрибуте href, а атрибуту rel присвоено значение stylesheet. rel означает «отношение» и является одной из ключевых особенностей элемента <link>: значение указывает, как связанный ресурс соотносится с содержащим его документом.
Вы встретите и другие распространённые типы. Например, ссылку на favicon сайта:
<link rel="icon" href="favicon.ico" />
Существует несколько других значений rel для значков, в основном используемых для указания специальных типов значков на различных мобильных платформах, например:
<link rel="apple-touch-icon" sizes="114x114" href="apple-icon-114.png" type="image/png" />
Атрибут sizes указывает размер значка, а type содержит MIME-тип связанного ресурса. Эти значения служат полезными подсказками, позволяя браузеру выбрать наиболее подходящий из доступных значков.
В атрибуте media также можно указать тип носителя или медиазапрос; в этом случае ресурс будет загружен, только если медиавыражение истинно. Например:
<link href="print.css" rel="stylesheet" media="print" /> <link href="mobile.css" rel="stylesheet" media="screen and (width <= 600px)" />
В элемент <link> также добавили несколько интересных новых возможностей для повышения производительности и безопасности. Рассмотрим этот пример:
<link rel="preload" href="myFont.woff2" as="font" type="font/woff2" crossorigin="anonymous" />
Значение preload атрибута rel указывает, что браузеру следует предварительно загрузить этот ресурс (подробности см. в разделе rel="preload"), а атрибут as указывает конкретный тип загружаемого содержимого. Атрибут crossorigin указывает, следует ли загружать ресурс с помощью запроса CORS.
Другие примечания по использованию:
- Элемент
<link>может находиться либо в элементе<head>, либо в элементе<body>— в зависимости от того, имеет ли он тип ссылки со значением body-ok. Например, тип ссылкиstylesheetдопускается в body, поэтому<link rel="stylesheet">разрешён в теле документа. Однако так делать не рекомендуется: логичнее отделять элементы<link>от содержимого body и размещать их в<head>. - Если вы используете
<link>для добавления favicon сайта, а сайт использует политику безопасности содержимого (CSP) для повышения безопасности, эта политика распространяется и на favicon. Если favicon не загружается, проверьте, не блокирует ли доступ к нему директиваimg-srcзаголовкаContent-Security-Policy. - В спецификациях HTML и XHTML определены обработчики событий для элемента
<link>, однако неясно, как их можно использовать. - В XHTML 1.0 для пустых элементов, таких как
<link>, требуется завершающая косая черта:<link />. - WebTV поддерживает использование значения
nextдляrelс целью предварительной загрузки следующей страницы в серии документов.
Атрибуты
Этот элемент включает глобальные атрибуты.
as-
Этот атрибут обязателен, если для элемента
<link>задано значениеrel="preload", необязателен, если задано значениеrel="modulepreload", и в остальных случаях использовать его не следует. Он указывает тип содержимого, загружаемого элементом<link>. Это необходимо для сопоставления запросов, применения правильной политики безопасности содержимого и установки правильного заголовка запросаAccept.Кроме того,
rel="preload"использует это значение как подсказку для определения приоритета запроса. В таблице ниже перечислены допустимые значения этого атрибута, а также элементы и ресурсы, к которым они применяются.значение Asзначение RelПрименяется к audioworklet modulepreload модулям AudioWorklet fetch preload fetch, XHR
Примечание: Для этого значения также требуется, чтобы
<link>содержал атрибут crossorigin; см. раздел Запросы fetch с поддержкой CORS.font preload CSS @font-face
Примечание: Для этого значения также требуется, чтобы
<link>содержал атрибут crossorigin; см. раздел Запросы fetch с поддержкой CORS.image preload элементы <img>и<picture>с атрибутами srcset или imageset, элементы SVG<image>, правила CSS*-imagejson modulepreload Дополнительный файл JSON paintworklet modulepreload модулям PaintWorklet script preload or modulepreload элементы <script>, WorkerimportScriptsи назначенияmodulepreload.serviceworker modulepreload модулям ServiceWorker sharedworker modulepreload SharedWorker style preload or modulepreload элементы <link rel=stylesheet>, CSS@importи назначенияmodulepreload.text modulepreload Дополнительный текстовый файл track preload элементы <track>(WebVTT, MIME-типtext/vtt)worker modulepreload модули Worker blocking-
Этот атрибут явно указывает, что определённые операции следует блокировать до выполнения заданных условий. Его можно использовать только в том случае, если атрибут
relсодержит ключевые словаexpectилиstylesheet. Вместе сrel="expect"он указывает, что операции следует блокировать до разбора определённого узла DOM. Вместе сrel="stylesheet"он указывает, что операции следует блокировать до загрузки внешней таблицы стилей и её критически важных подресурсов и применения их к документу. Операции, которые необходимо блокировать, должны быть перечислены через пробел с помощью приведённых ниже токенов. Сейчас доступен только один токен:-
render: отображение содержимого на экране блокируется.
Примечание: Блокировать отображение могут только элементы
linkв<head>документа. По умолчанию элементlinkсrel="stylesheet"в<head>блокирует отображение, когда браузер обнаруживает его во время разбора. Если такой элементlinkдобавляется динамически с помощью скрипта, для блокировки отображения необходимо также задать емуblocking = "render". -
crossorigin-
Этот перечисляемый атрибут указывает, нужно ли использовать CORS при загрузке ресурса. Изображения с поддержкой CORS можно повторно использовать в элементе
<canvas>, не делая его загрязнённым. Допустимые значения:anonymous-
Выполняется междоменный запрос (то есть с заголовком HTTP
Origin), но учётные данные не отправляются (то есть не передаются cookie, сертификат X.509 и данные аутентификации HTTP Basic). Если сервер не предоставляет учётные данные исходному сайту (не устанавливает заголовок HTTPAccess-Control-Allow-Origin), ресурс будет считаться загрязнённым, а его использование будет ограничено. use-credentials-
Выполняется междоменный запрос (то есть с заголовком HTTP
Origin) с отправкой учётных данных (то есть отправляется cookie или сертификат и/или выполняется аутентификация HTTP Basic). Если сервер не предоставляет учётные данные исходному сайту (через заголовок HTTPAccess-Control-Allow-Credentials), ресурс будет загрязнённым, а его использование будет ограничено.
Если атрибут отсутствует, ресурс загружается без запроса CORS (то есть без отправки заголовка HTTP
Origin), что исключает его использование без загрязнения. Если значение недопустимо, оно обрабатывается так, как если бы было указано перечисляемое ключевое слово anonymous. Дополнительную информацию см. в разделе Атрибуты настроек CORS. disabled-
Только для
rel="stylesheet": логический атрибутdisabledуказывает, следует ли загружать описанную таблицу стилей и применять её к документу. Если при загрузке HTML указанdisabled, таблица стилей не будет загружена при загрузке страницы. Вместо этого она загрузится по требованию, если и когда атрибутdisabledбудет изменён наfalseили удалён.Установка свойства
disabledв DOM приводит к удалению таблицы стилей из спискаDocument.styleSheetsдокумента. fetchpriority-
Подсказывает относительный приоритет загрузки ресурса определённого типа. Допустимые значения:
high-
Загрузить ресурс с высоким приоритетом относительно других ресурсов того же типа.
low-
Загрузить ресурс с низким приоритетом относительно других ресурсов того же типа.
auto-
Не задавать предпочтительный приоритет загрузки. Это значение используется по умолчанию, если значение не задано или недопустимо.
href-
Этот атрибут задаёт URL связанного ресурса. URL может быть абсолютным или относительным.
hreflang-
Этот атрибут указывает язык связанного ресурса. Он носит исключительно рекомендательный характер. Значения должны быть корректными языковыми тегами BCP 47. Используйте этот атрибут только при наличии атрибута
href. imagesizes-
Только для
rel="preload"иas="image": атрибутimagesizesимеет синтаксис и семантику, аналогичные атрибутуsizes, и указывает предварительно загрузить соответствующий ресурс, используемый элементомimgс соответствующими значениями атрибутовsrcsetиsizes. imagesrcset-
Только для
rel="preload"иas="image": атрибутimagesrcsetимеет синтаксис и семантику, аналогичные атрибутуsrcset, и указывает предварительно загрузить соответствующий ресурс, используемый элементомimgс соответствующими значениями атрибутовsrcsetиsizes. integrity-
Этот атрибут содержит один или несколько хешей ресурса. Он используется для проверки того, что содержимое ресурса соответствует ожиданиям разработчика и не было заменено вредоносной копией в результате атаки на цепочку поставок. Атрибут можно указывать только тогда, когда атрибут
relимеет значениеstylesheet,preloadилиmodulepreload. См. раздел Subresource Integrity. media-
Этот атрибут указывает типы носителей, к которым применяется связанный ресурс. Его значение должно быть типом носителя или медиазапросом. Атрибут особенно полезен при подключении внешних таблиц стилей: он позволяет пользовательскому агенту выбрать наиболее подходящую для устройства таблицу.
referrerpolicy-
Строка, указывающая, какой реферер использовать при загрузке ресурса. Подробные объяснения и примеры каждой политики см. в документации заголовка
Referrer-Policy.-
no-referrerозначает, что заголовокRefererотправляться не будет. -
no-referrer-when-downgradeозначает, что заголовокRefererне будет отправляться при переходе к источнику без TLS (HTTPS). Это поведение пользовательского агента по умолчанию, если не указана другая политика. -
originозначает, что реферером будет источник страницы, то есть примерно схема, хост и порт. -
origin-when-cross-originозначает, что при переходе к другим источникам будут передаваться только схема, хост и порт, а при переходе в пределах того же источника будет включён путь реферера. -
same-originозначает, что реферер (источник, путь и строка запроса) отправляется для запросов к тому же источнику, а для междоменных запросов реферер не отправляется. -
strict-originозначает, что передаётся только источник, если уровень безопасности протокола не меняется (HTTPS→HTTPS). При переходе к менее защищённому адресу (HTTPS→HTTP) реферер не отправляется. Это важно для страниц HTTPS, поскольку предотвращает утечку сведений о реферере к незащищённым источникам. -
strict-origin-when-cross-originозначает, что полный реферер отправляется для запросов к тому же источнику. Для междоменных запросов передаётся только источник, если протокол не меняется (HTTPS→HTTPS), а при переходе на HTTP реферер не отправляется. Это значение используется по умолчанию и обеспечивает баланс между функциональностью, конфиденциальностью и безопасностью сайтов HTTPS. -
unsafe-urlозначает, что реферер будет содержать источник и путь (но не фрагмент, пароль или имя пользователя). Этот вариант небезопасен, поскольку может привести к утечке источников и путей защищённых TLS-ресурсов незащищённым источникам.
-
rel-
Этот атрибут задаёт отношение связанного документа к текущему документу. Его значение должно представлять собой разделённый пробелами список значений типа ссылки.
sizes-
Этот атрибут задаёт размеры значков для визуальных носителей, содержащихся в ресурсе. Он должен присутствовать только в том случае, если
relсодержит значениеiconили нестандартный тип, напримерapple-touch-iconот Apple. Допустимы следующие значения:-
any— значок можно масштабировать до любого размера, поскольку он представлен векторным форматом, напримерimage/svg+xml. - список размеров, разделённых пробелами, каждый из которых имеет формат
<width in pixels>x<height in pixels>или<width in pixels>X<height in pixels>. Каждый из этих размеров должен присутствовать в ресурсе.
Примечание: Большинство форматов значков позволяют хранить только один значок, поэтому чаще всего атрибут
sizesсодержит лишь одну запись. Формат ICO от Microsoft и формат ICNS от Apple позволяют хранить несколько размеров значков в одном файле. ICO лучше поддерживается браузерами, поэтому, если важна кроссбраузерная совместимость, используйте этот формат. -
title-
Атрибут
titleимеет особую семантику для элемента<link>. При использовании с<link rel="stylesheet">он определяет таблицу стилей по умолчанию или альтернативную таблицу стилей. type-
Этот атрибут задаёт тип связанного содержимого. Его значение должно быть MIME-типом, например text/html, text/css и т. д. Обычно этот атрибут используется для указания типа подключаемой таблицы стилей (например, text/css), но поскольку в вебе используется только язык таблиц стилей CSS, атрибут
typeможно не указывать и даже рекомендуется так поступать. Он также используется со ссылками типаrel="preload", чтобы браузер загружал только поддерживаемые им типы файлов.
Нестандартные атрибуты
target-
Задаёт имя фрейма или окна, в котором установлена указанная связь либо будет отображаться связанный ресурс.
Устаревшие атрибуты
charset-
Этот атрибут задаёт кодировку символов связанного ресурса. Значение представляет собой список наборов символов, разделённых пробелами и/или запятыми, как определено в RFC 2045. Значение по умолчанию —
iso-8859-1.Примечание: Чтобы добиться того же результата, что и с этим устаревшим атрибутом, используйте HTTP-заголовок
Content-Typeсвязанного ресурса. rev-
Значение этого атрибута показывает отношение текущего документа к связанному документу, заданному атрибутом
href. Таким образом, атрибут задаёт отношение, обратное указанному значением атрибутаrel. Значения типа ссылки для этого атрибута аналогичны возможным значениям атрибутаrel.Примечание: Вместо
revследует использовать атрибутrelс противоположным значением типа ссылки. Например, чтобы задать обратную ссылку дляmade, укажитеauthor. Кроме того, этот атрибут не означает «редакция» и не должен использоваться с номером версии, хотя многие сайты применяют его неправильно именно так.
Примеры
>Подключение таблицы стилей
Чтобы подключить таблицу стилей к странице, используйте следующий синтаксис:
<link href="style.css" rel="stylesheet" />
Добавление альтернативных таблиц стилей
Также можно указать альтернативные таблицы стилей.
Пользователь может выбрать таблицу стилей в меню Вид > Стиль страницы. Благодаря этому пользователи могут просматривать несколько вариантов страницы.
<link href="default.css" rel="stylesheet" title="Default Style" /> <link href="fancy.css" rel="alternate stylesheet" title="Fancy" /> <link href="basic.css" rel="alternate stylesheet" title="Basic" />
Добавление значков для разных сценариев использования
На одной странице можно разместить ссылки на несколько значков, а браузер выберет наиболее подходящий для конкретного контекста, используя значения rel и sizes в качестве подсказок.
<!-- iPad Pro with high-resolution Retina display: --> <link rel="apple-touch-icon" sizes="167x167" href="/apple-touch-icon-167x167.png" /> <!-- 3x resolution iPhone: --> <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon-180x180.png" /> <!-- non-Retina iPad, iPad mini, etc.: --> <link rel="apple-touch-icon" sizes="152x152" href="/apple-touch-icon-152x152.png" /> <!-- 2x resolution iPhone and other devices: --> <link rel="apple-touch-icon" href="/apple-touch-icon-120x120.png" /> <!-- basic favicon --> <link rel="icon" href="/favicon.ico" />
Информацию о том, какое значение sizes выбрать для значков Apple, см. в документации Apple по настройке веб-приложений и упомянутых рекомендациях Apple по проектированию интерфейсов. Обычно достаточно предоставить большое изображение, например 192x192, и позволить браузеру при необходимости уменьшить его. Однако, как рекомендуют рекомендации Apple по дизайну, для разных размеров можно предоставить изображения с разным уровнем детализации. Значки меньшего размера для экранов с низким разрешением также позволяют сэкономить трафик.
Возможно, добавлять элементы <link> вообще не потребуется. Например, браузеры автоматически запрашивают /favicon.ico из корневого каталога сайта, а Apple автоматически запрашивает /apple-touch-icon-[size].png, /apple-touch-icon.png и т. д. Однако явные ссылки защитят вас от изменений этих соглашений.
Условная загрузка ресурсов с помощью медиазапросов
В атрибуте media можно указать тип носителя или запрос; в этом случае ресурс будет загружен, только если медиавыражение истинно. Например:
<link href="print.css" rel="stylesheet" media="print" /> <link href="mobile.css" rel="stylesheet" media="all" /> <link href="desktop.css" rel="stylesheet" media="screen and (width >= 600px)" /> <link href="highres.css" rel="stylesheet" media="screen and (resolution >= 300dpi)" />
События загрузки таблицы стилей
Чтобы определить, когда таблица стилей загрузилась, можно отслеживать срабатывание события load; аналогично, обнаружить ошибку при обработке таблицы стилей можно, отслеживая событие error:
<link rel="stylesheet" href="mystylesheet.css" id="my-stylesheet" />
const stylesheet = document.getElementById("my-stylesheet");
stylesheet.onload = () => {
// Do something interesting; the sheet has been loaded
};
stylesheet.onerror = () => {
console.log("An error occurred loading the stylesheet!");
};
Примечание: Событие load срабатывает после загрузки и разбора таблицы стилей и всего импортированного ею содержимого, непосредственно перед началом применения стилей к содержимому.
Примеры предварительной загрузки
Несколько примеров <link rel="preload"> приведены в разделе Предварительная загрузка содержимого с помощью rel="preload".
Блокировка отображения до загрузки ресурса
В атрибут blocking можно добавить токен render; отображение страницы будет заблокировано до загрузки ресурса и его критически важных подресурсов и применения их к документу. Например:
<link blocking="render" rel="stylesheet" href="example.css" crossorigin />
Техническая сводка
| Категории содержимого | Метаданные. Если присутствует itemprop: потоковое содержимое и фразовое содержимое. |
|---|---|
| Допустимое содержимое | Отсутствует: это пустой элемент. |
| Пропуск тегов | Требуется начальный тег; конечный тег использовать нельзя. |
| Допустимые родительские элементы | Любой элемент, допускающий элементы метаданных. Если присутствует itemprop: любой элемент, допускающий фразовое содержимое. |
| Неявная роль ARIA |
link с атрибутом href |
| Допустимые роли ARIA | Роль role не допускается |
| Интерфейс DOM | HTMLLinkElement |
Спецификации
| Спецификация |
|---|
| HTML> # the-link-element> |
Совместимость с браузерами
| Настольные | Мобильные | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome для Android | Firefox для Android | Opera для Android | Safari в iOS | Samsung Internet | WebView для Android | WebView в iOS | |
link |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
as |
50 | 17 | 56 | 37 | 10 | 50 | 56 | 37 | 10 | 5.0 | 50 | 10 |
blocking |
105 | 105 | Нет | 91 | 18.2 | 105 | Нет | 72 | 18.2 | 20.0 | 105 | 18.2 |
charset |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
crossorigin |
34 | 17 | 18До Firefox 83crossorigin не поддерживается для rel="icon". |
21 | 10 | 34 | 18До Firefox для Android 83crossorigin не поддерживается для rel="icon". |
21 | 10 | 2.0 | 37 | 10 |
disabled |
1В Chrome и других браузерах на основе Blink добавление атрибутаdisabled с помощью JavaScript не удаляет таблицу стилей из document.styleSheets. |
12Начиная с Edge 79, добавление атрибутаdisabled с помощью JavaScript не удаляет таблицу стилей из document.styleSheets. |
1 | ≤12.1В Chrome и других браузерах на основе Blink добавление атрибутаdisabled с помощью JavaScript не удаляет таблицу стилей из document.styleSheets. |
≤4 | 18В Chrome для Android и других браузерах на основе Blink добавление атрибутаdisabled с помощью JavaScript не удаляет таблицу стилей из document.styleSheets. |
4 | ≤12.1В Chrome и других браузерах на основе Blink добавление атрибутаdisabled с помощью JavaScript не удаляет таблицу стилей из document.styleSheets. |
≤3.2 | 1.0В Samsung Internet и других браузерах на основе Blink добавление атрибутаdisabled с помощью JavaScript не удаляет таблицу стилей из document.styleSheets. |
4.4В WebView для Android и других браузерах на основе Blink добавление атрибутаdisabled с помощью JavaScript не удаляет таблицу стилей из document.styleSheets. |
≤3.2 |
fetchpriority |
101 | 101 | 132 | 87 | 17.2 | 101 | 132 | 70 | 17.2 | 19.0 | 101 | 17.2 |
href |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
hreflang |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
imagesizes |
73 | 79 | 78 | 60 | 17.2 | 73 | 79 | 52 | 17.2 | 11.0 | 73 | 17.2 |
imagesrcset |
73 | 79 | 78 | 60 | 17.2 | 73 | 79 | 52 | 17.2 | 11.0 | 73 | 17.2 |
integrity |
45 | 17 | 43 | 32 | 11.1 | 45 | 43 | 32 | 11.3 | 5.0 | 45 | 11.3 |
media |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
referrerpolicy |
51 | 79 | 50 | 38 | 14 | 51 | 50 | 41 | 14 | 7.2 | 51 | 14 |
rel |
1 | 12 | 1 | 9 | 1 | 18 | 4 | 10.1 | 1 | 1.0 | 4.4 | 1 |
rev |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
sizes |
15 | 79 | 31 | 15 | 6 | 18 | 31 | 14 | 6 | 1.0 | 4.4 | 6 |
target |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
type |
1 | 12 | 1 | ≤12.1 | ≤4 | 18 | 4 | ≤12.1 | ≤3.2 | 1.0 | 4.4 | ≤3.2 |
См. также
-
Linkзаголовок HTTP -
Referrer-Policyзаголовок HTTP
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/link