<a>: Элемент ссылки
Базовая Широкодоступная
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и версиях браузеров. Она доступна в браузерах с июля 2015 года.
Элемент <a> HTML (или элемент ссылки), с атрибутом его href, создаёт гиперссылку на веб-страницы, файлы, адреса электронной почты, места в той же странице или всё, что может быть адресовано URL.
Содержание внутри каждого <a> должно указывать на место назначения ссылки. Если присутствует атрибут href, нажатие клавиши Enter, когда фокус на элементе <a>, активирует его.
Попробуйте
Атрибуты
Атрибуты этого элемента включают глобальные атрибуты.
-
attributionsrcЭкспериментальный -
Указывает, что браузер должен отправить заголовок
Attribution-Reporting-Eligible. На стороне сервера это используется для запуска отправки заголовкаAttribution-Reporting-Register-Sourceв ответе, чтобы зарегистрировать источник атрибуции на основе навигации.Браузер сохраняет данные источника, связанные с источником атрибуции на основе навигации (как предоставлено в заголовке ответа
Attribution-Reporting-Register-Source), когда пользователь нажимает на ссылку. Подробнее см. API отслеживания атрибуции.Вы можете задать два варианта этого атрибута:
- Булево значение, т.е. только имя
attributionsrc. Это указывает, что вы хотите отправить заголовокAttribution-Reporting-Eligibleна тот же сервер, что иhref. Это подходит, когда вы обрабатываете регистрацию источника атрибуции на том же сервере. - Значение, содержащее один или несколько URL-адресов, например: Это полезно в случаях, когда запрашиваемый ресурс находится не на сервере, которым вы управляете, или вы просто хотите обработать регистрацию источника атрибуции на другом сервере. В этом случае вы можете указать один или несколько URL-адресов в качестве значенияhtml
attributionsrc="https://a.example/register-source https://b.example/register-source"
attributionsrc. При запросе ресурса заголовокAttribution-Reporting-Eligibleбудет отправлен на указанные URL-адреса вattributionsrcпомимо источника ресурса. Эти URL-адреса могут затем ответить заголовкомAttribution-Reporting-Register-Sourceдля завершения регистрации.Примечание: Указание нескольких URL-адресов означает, что на одном функциональном элементе можно зарегистрировать несколько источников атрибуции. Например, вы можете иметь разные рекламные кампании, для которых вы пытаетесь измерить эффективность, что включает в себя создание различных отчетов по разным данным.
<a>элементы не могут использоваться в качестве триггеров атрибуции, только как источники. - Булево значение, т.е. только имя
download-
Принуждает браузер обрабатывать связанный URL-адрес как загрузку. Может использоваться с или без значения
filename.- Без значения браузер предложит имя файла/расширение, сгенерированное из различных источников:
- Заголовок HTTP
Content-Disposition - Последний сегмент в URL-адресе путь
- Тип медиа (из заголовка
Content-Type, началаdata:URL-адреса, илиBlob.typeдляblob:URL-адреса)
- Заголовок HTTP
-
filename: определение значения предполагает его как имя файла./и\символы преобразуются в нижнее подчеркивание (_). Файловые системы могут запрещать другие символы в именах файлов, поэтому браузеры будут корректировать предложенное имя при необходимости.
Примечание:
-
downloadработает только для URL-адресов одного домена или схемblob:иdata:. - Обработка загрузок браузерами зависит от браузера, настроек пользователя и других факторов. Пользователь может быть запрошен перед началом загрузки, либо файл может быть сохранен автоматически, либо может открыться автоматически, либо в отдельном приложении, либо в самом браузере.
- Если заголовок
Content-Dispositionсодержит другую информацию, чем атрибутdownload, результаты могут отличаться:- Если заголовок указывает
filename, он имеет приоритет над именем файла, указанным в атрибутеdownload. - Если заголовок указывает расположение
inline, Chrome и Firefox приоритизируют атрибут и обрабатывают его как загрузку. Старые версии Firefox (до версии 82) приоритизируют заголовок и отображают контент в строке.
- Если заголовок указывает
- Без значения браузер предложит имя файла/расширение, сгенерированное из различных источников:
href-
URL-адрес, к которому ведет гиперссылка. Ссылки не ограничены URL-адресами на основе HTTP — они могут использовать любую схему URL, поддерживаемую браузерами:
- Разделы страницы с фрагментами документа
- Конкретные части текста с фрагментами текста
- Части файлов мультимедиа с фрагментами мультимедиа
- Номера телефонов с
tel:URL-адресами - Электронные адреса с
mailto:URL-адресами - SMS-сообщения с
sms:URL-адресами - Хотя веб-браузеры могут не поддерживать другие схемы URL, веб-сайты могут с
registerProtocolHandler()
hreflang-
Подсказывает язык связанного URL. Нет встроенной функциональности. Допустимые значения такие же, как у глобального атрибута
lang. ping-
Список URL-адресов, разделенных пробелами. При переходе по ссылке браузер отправит запросы
POSTс теломPINGна эти URL-адреса. Как правило, для отслеживания. referrerpolicy-
Как много информации о ссылке-источнике отправлять при переходе по ссылке.
-
no-referrer: ЗаголовокRefererне будет отправлен. -
no-referrer-when-downgrade: ЗаголовокRefererне будет отправлен в источники без TLS (HTTPS). -
origin: Отправляемая ссылка-источник будет ограничена источником страницы-источника: её схемой, хостом и портом. -
origin-when-cross-origin: Ссылка-источник, отправленная в другие источники, будет ограничена схемой, хостом и портом. Переходы в том же источнике всё ещё будут содержать путь. -
same-origin: Ссылка-источник будет отправлена для того же домена, но запросы между доменам не будут содержать информацию о ссылке-источнике. -
strict-origin: Отправлять только источник документа как ссылку-источник, когда уровень безопасности протокола остается неизменным (HTTPS→HTTPS), но не отправлять его в менее безопасное место назначения (HTTPS→HTTP). -
strict-origin-when-cross-origin(по умолчанию): Отправить полный URL при запросе в том же домене, отправить только источник, когда уровень безопасности протокола остается неизменным (HTTPS→HTTPS), и не отправлять заголовок в менее безопасное место назначения (HTTPS→HTTP). -
unsafe-url: Ссылка-источник будет включать источник и путь (но не фрагмент, пароль или имя пользователя). Это значение небезопасно, так как оно раскрывает источники и пути из ресурсов с TLS-защитой в небезопасные источники.
-
rel-
Связь связанного URL-адреса в виде типов ссылок, разделенных пробелами.
target-
Место отображения связанного URL-адреса, как имя контекста просмотра (вкладка, окно или
<iframe>). Следующие ключевые слова имеют специальное значение для загрузки URL-адреса:-
_self: Текущий контекст просмотра. (По умолчанию) -
_blank: Обычно новая вкладка, но пользователи могут настроить браузер на открытие нового окна вместо этого. -
_parent: Родительский контекст просмотра текущего контекста. Если родительского нет, ведет себя как_self. -
_top: Самый верхний контекст просмотра. Точнее, это означает "самый высокий" контекст, являющийся предком текущего. Если предков нет, ведет себя как_self. -
_unfencedTop: Позволяет встраиваемым изолированным фреймам переходить по ссылкам в фрейме верхнего уровня (т.е. переходить за пределы корня изолированного фрейма, в отличие от других зарезервированных целей). Обратите внимание, что навигация все равно будет успешной, если это используется вне контекста изолированного фрейма, но она не будет вести себя как зарезервированное ключевое слово.
Примечание: Установка
target="_blank"на<a>элементы неявно обеспечивает то же поведениеrel, что и установкаrel="noopener", которая не устанавливаетwindow.opener. -
type-
Подсказывает формат связанного URL-адреса с помощью типа MIME. Нет встроенной функциональности.
Устаревшие атрибуты
-
charsetУстаревший -
Указывал кодировку символов связанного URL.
Примечание: Этот атрибут устарел и авторам не рекомендуется его использовать. Используйте HTTP-заголовок
Content-Typeдля связанного URL. -
coordsУстаревший -
Использовался с атрибутом
shape. Список координат, разделённых запятыми. -
nameУстаревший -
Был необходим для определения возможной целевой области на странице. В HTML 4.01,
idиnameмогли использоваться на<a>, при условии одинаковых значений.Примечание: Используйте глобальный атрибут
idвместо него. -
revУстаревший -
Указывал обратную ссылку; противоположность атрибуту
rel. Устарел из-за путаницы. -
shapeУстаревший -
Форма области гиперссылки в карте изображения.
Примечание: Используйте элемент
<area>для карт изображений вместо него.
Доступность
Ясный текст ссылок
Текст внутри ссылки должен указывать, куда ведёт ссылка, даже вне контекста.
Недоступный, слабый текст ссылки
Частая ошибка — использование только слов «нажмите здесь» или «здесь»:
<p>Learn more about our products <a href="/products">here</a>.</p>
Результат
Ясный текст ссылки
К счастью, это легко исправить, и это на самом деле короче, чем недоступный вариант!
<p>Learn more <a href="/products">about our products</a>.</p>
Результат
У вспомогательных программ есть возможность вывести список всех ссылок на странице. Однако, ясный текст ссылок выгоден всем пользователям — возможность быстрого сканирования страниц, аналогичная той, которой пользуются люди со зрением.
События onclick
Элементы якоря часто используются как поддельные кнопки, устанавливая их href на # или javascript:void(0) для предотвращения обновления страницы, затем прослушивая их click события.
Эти ложные значения href вызывают неожиданное поведение при копировании/перетаскивании ссылок, открытии ссылок в новой вкладке/окне, добавлении в закладки или при загрузке, ошибках или отключении JavaScript. Они также передают неверную семантику вспомогательным технологиям, таким как программы для чтения с экрана.
Вместо этого используйте элемент <button>. В целом, вы должны использовать гиперссылку только для перехода по реальному URL.
Внешние ссылки и ссылки на ресурсы, не являющиеся HTML
Ссылки, которые открываются в новой вкладке/окне с помощью target="_blank", или ссылки, ведущие на загружаемый файл, должны указывать, что произойдёт после перехода по ссылке.
Люди с нарушениями зрения, использующие программы для чтения с экрана или имеющие когнитивные нарушения, могут запутаться, если неожиданно откроется новая вкладка, окно или приложение. Более старые программы для чтения с экрана могут даже не сообщать об этом.
Ссылка, открывающая новую вкладку/окно
<a target="_blank" href="https://www.wikipedia.org"> Wikipedia (opens in new tab) </a>
Результат
Ссылка на ресурс, не являющийся HTML
<a href="2017-annual-report.ppt">2017 Annual Report (PowerPoint)</a>
Если для обозначения поведения ссылки используется значок, убедитесь, что у него есть альтернативный текст:
<a target="_blank" href="https://www.wikipedia.org"> Wikipedia <img alt="(opens in new tab)" src="newtab.svg" /> </a> <a href="2017-annual-report.ppt"> 2017 Annual Report <img alt="(PowerPoint file)" src="ppt-icon.svg" /> </a>
Результат
Спусковые ссылки
Спусковая ссылка — ссылка, размещённая как можно раньше в содержимом <body>, которая ведёт к началу основного содержимого страницы. Обычно CSS скрывает спусковую ссылку вне поля зрения до фокусировки.
<body> <a href="#content" class="skip-link">Skip to main content</a> <header>…</header> <!-- The skip link jumps to here --> <main id="content"></main> </body>
.skip-link { position: absolute; top: -3em; background: #fff; } .skip-link:focus { top: 0; }
Результат
Спусковые ссылки позволяют пользователям с клавиатурой пропустить содержимое, повторяющееся на нескольких страницах, например, навигацию по заголовкам.
Спусковые ссылки особенно полезны для людей, которые пользуются вспомогательными технологиями, такими как переключатели, голосовое управление или устройства управления ртом/головой, где перемещение по повторяющимся ссылкам может быть трудоёмким.
Размер и близость
Размер
Интерактивные элементы, такие как ссылки, должны иметь достаточно большую площадь, чтобы их легко было активировать. Это помогает многим людям, включая тех, у кого есть проблемы с управлением двигательной функцией, и тех, кто использует неточные устройства ввода, такие как сенсорные экраны. Рекомендуется минимальный размер 44×44 CSS пикселей.
Текстовые ссылки в текстовом содержимом освобождены от этого требования, но всё же рекомендуется убедиться, что достаточно текста ссылается, чтобы его легко было активировать.
- Понимание критерия успеха 2.5.5: Размер цели
- Размер цели и 2.5.5
- Быстрый тест: Крупные цели для касания
Близость
Интерактивные элементы, такие как ссылки, размещённые близко друг к другу, должны быть разделены. Отступы помогают людям с нарушениями двигательной функции, которые иначе могут случайно активировать неправильное интерактивное содержимое.
Отступы можно создать с помощью свойств CSS, таких как margin.
Примеры
Ссылка на абсолютный URL
HTML
<a href="https://www.mozilla.com">Mozilla</a>
Результат
Ссылка на относительный URL
HTML
<a href="//example.com">Scheme-relative URL</a> <a href="/en-US/docs/Web/HTML">Origin-relative URL</a> <a href="p">Directory-relative URL</a> <a href="./p">Directory-relative URL</a> <a href="../p">Parent-directory-relative URL</a>
Результат
Ссылка на элемент на той же странице
<!-- <a> element links to the section below --> <p><a href="#Section_further_down">Jump to the heading below</a></p> <!-- Heading to link to --> <h2 id="Section_further_down">Section further down</h2>
Результат
Примечание: Вы можете использовать href="#top" или пустой фрагмент (href="#") для ссылки на начало текущей страницы, как определено в спецификации HTML.
Ссылка на адрес электронной почты
Для создания ссылок, которые открываются в программе электронной почты пользователя для отправки нового сообщения, используйте схему mailto::
<a href="mailto:nowhere@mozilla.org">Send email to nowhere</a>
Результат
Для получения подробностей о mailto: URL-адресах, таких как включение темы или тела, см. Ссылки на электронную почту или RFC 6068.
Ссылка на номера телефонов
<a href="tel:+49.157.0156">+49 157 0156</a> <a href="tel:+1(800)555-0123">(800) 555-0123</a>
Результат
tel: поведение ссылки зависит от возможностей устройства:
- Мобильные устройства автоматически набирают номер.
- В большинстве операционных систем есть программы для звонков, такие как Skype или FaceTime.
- Веб-сайты могут совершать телефонные звонки с помощью
registerProtocolHandler, например,web.skype.com. - Другие действия могут включать сохранение номера в контакты или отправку номера на другое устройство.
См. RFC 3966 для синтаксиса, дополнительных функций и других подробностей о схеме URL-адресов tel:.
Использование атрибута download для сохранения
Чтобы сохранить содержимое элемента <canvas> в виде изображения, вы можете создать ссылку, где href представляет данные холста в виде data: URL, созданного с помощью JavaScript, а атрибут download задаёт имя файла для загружаемого файла PNG:
Пример приложения для рисования с ссылкой на сохранение
HTML
<p> Paint by holding down the mouse button and moving it. <a href="" download="my_painting.png">Download my painting</a> </p> <canvas width="300" height="300"></canvas>
CSS
html { font-family: sans-serif; } canvas { background: #fff; border: 1px dashed; } a { display: inline-block; background: #69c; color: #fff; padding: 5px 10px; }
JavaScript
const canvas = document.querySelector("canvas"); const c = canvas.getContext("2d"); c.fillStyle = "hotpink"; let isDrawing; function draw(x, y) { if (isDrawing) { c.beginPath(); c.arc(x, y, 10, 0, Math.PI * 2); c.closePath(); c.fill(); } } canvas.addEventListener("mousemove", (event) => draw(event.offsetX, event.offsetY), ); canvas.addEventListener("mousedown", () => (isDrawing = true)); canvas.addEventListener("mouseup", () => (isDrawing = false)); document .querySelector("a") .addEventListener( "click", (event) => (event.target.href = canvas.toDataURL()), );
Результат
Безопасность и конфиденциальность
Элементы <a> могут иметь последствия для безопасности и конфиденциальности пользователей. См. Referer заголовок: проблемы конфиденциальности и безопасности для получения информации.
Использование target="_blank" без rel="noreferrer" и rel="noopener" делает веб-сайт уязвимым для атак с использованием API window.opener. Однако обратите внимание, что в более новых версиях браузеров установка target="_blank" неявно обеспечивает ту же защиту, что и установка rel="noopener". Подробности см. в разделе совместимость браузеров.
Техническое описание
| Категории контента | Контент потока, фразовый контент, интерактивный контент, осязаемый контент. |
|---|---|
| Разрешённый контент | Прозрачный, за исключением того, что ни один потомок не может быть интерактивным контентом или элементом <a>, и ни один потомок не может иметь указанный атрибут tabindex. |
| Пропуск тега | Нет, и открывающий, и закрывающий теги обязательны. |
| Разрешённые родительские элементы | Любой элемент, который принимает контент потока, но не другие элементы <a>. |
| Неявная роль ARIA | link, когда присутствует атрибут href, в противном случае generic |
| Разрешённые роли ARIA | Когда присутствует атрибут Когда атрибут
|
| Интерфейс DOM | HTMLAnchorElement |
Спецификации
| Спецификация |
|---|
| Стандарт HTML # the-a-element |
Совместимость браузеров
| Настольный | Мобильный | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на IOS | Samsung Internet | WebView Android | |
a |
1 | 12 | 1Начиная с Firefox 41, <a> без атрибутаhref больше не классифицируется как интерактивный контент: щелчок по нему внутри <label> активирует помеченный контент (bug 1167816). |
15 | 1 | 18 | 4Начиная с Firefox 41, <a> без атрибутаhref больше не классифицируется как интерактивный контент: щелчок по нему внутри <label> активирует помеченный контент (bug 1167816). |
14 | 1 | 1.0 | 4.4 |
attributionsourceid |
Нет | Нет | Нет | Нет | 14.1 | Нет | Нет | Нет | 14.5 | Нет | Нет |
attributionsrc |
117 | 117 | Нет | 103 | Нет | 117 | Нет | 78 | Нет | 24.0 | 117 |
charset |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
coords |
1 | 79 | 1–58Вы больше не можете вкладывать элемент<a> внутри элемента <map> для создания области активной зоны - поддержка атрибутов coords и shape удалена. |
15 | 1 | 18 | 4–58Вы больше не можете вкладывать элемент<a> внутри элемента <map> для создания области активной зоны - поддержка атрибутов coords и shape удалена. |
14 | 1 | 1.0 | 4.4 |
download |
14Начиная с Chrome 65, кросс-доменные загрузки не поддерживаются в элементе<a>. |
18Начиная с Edge 79, кросс-доменные загрузки не поддерживаются в элементе<a>. 13["До Edge 14 (сборка 14357) попытка загрузки URI данных приводила к сбою Edge (bug 7160092).", "Edge 17 или более старые версии не следовали значению атрибутов для определения имени файла (bug 7260192)."] |
20 | 15Начиная с Opera 52, кросс-доменные загрузки не поддерживаются в элементе<a>. |
10.1 | 18Начиная с Chrome 65, кросс-доменные загрузки не поддерживаются в элементе<a>. |
20 | 14Начиная с Opera 47, кросс-доменные загрузки не поддерживаются в элементе<a>. |
13 | 1.0Начиная с Samsung Internet 9.0, кросс-доменные загрузки не поддерживаются в элементе<a>. |
4.4Начиная с Chrome 65, кросс-доменные загрузки не поддерживаются в элементе<a>. |
href |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
hreflang |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
implicit_noopener |
88 | 88 | 79 | 74 | 12.1 | 88 | 79 | 63 | 12.2 | 15.0 | 88 |
name |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
ping |
12 | 17 | 1Это свойство доступно, но не оказывает никакого влияния, если параметрbrowser.send_pings не установлен в true. См. bug 951104. |
15 | 6 | 18 | 4Это свойство доступно, но не оказывает никакого влияния, если параметрbrowser.send_pings не установлен в true. См. bug 951104. |
14 | 6 | 1.0 | ≤37 |
referrerpolicy |
51 | 79 | 50 | 38 | 14 | 51 | 50 | 41 | 14 | 7.2 | 51 |
rel |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
rev |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
shape |
1 | 79 | 1–58Вы больше не можете вкладывать элемент<a> внутри элемента <map> для создания области активной зоны - поддержка атрибутов coords и shape удалена. |
15 | 1 | 18 | 4–58Вы больше не можете вкладывать элемент<a> внутри элемента <map> для создания области активной зоны - поддержка атрибутов coords и shape удалена. |
14 | 1 | 1.0 | 4.4 |
target |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
text_fragments |
80 | 80 | Нет | 67 | 16.1 | 80 | Нет | 57 | 16.1 | 13.0 | 80 |
type |
1 | 12 | 1 | 15 | 1 | 18 | 4 | 14 | 1 | 1.0 | 4.4 |
См. также
-
<link>аналогичен<a>, но для гиперссылок метаданных, которые не видны пользователю. -
:link— это псевдокласс CSS, который будет соответствовать элементам<a>с URL в атрибутеhref, которые пользователь еще не посетил. -
:visited— это псевдокласс CSS, который будет соответствовать элементам<a>с URL в атрибутеhref, которые пользователь посетил ранее. - Фрагменты текста — это инструкции агента пользователя, добавляемые к URL, которые позволяют авторам контента ссылаться на определённый текст на странице без необходимости использования идентификаторов.
© 2005–2023 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a