
Тег <nav> применяется для разметки блока ссылок, которые образуют структуру навигации по сайту или приложению. Его основная задача – обозначить область документа, содержащую переходы к ключевым разделам. Поиск и вспомогательные системы могут распознавать такие блоки и использовать их для создания карты сайта или улучшения доступности.
Элемент <nav> не предназначен для всех ссылок подряд. В него включают только основные меню: глобальную навигацию, переходы по категориям, внутренние разделы статьи. Ссылки внутри текста, сноски или вспомогательные элементы лучше размещать без использования этого тега, чтобы не перегружать структуру.
Для корректной работы рекомендуется использовать <nav> вместе со списками – чаще всего <ul> и <li>. Такой подход обеспечивает понятное представление пунктов меню, удобство стилизации и предсказуемое поведение в разных браузерах. Дополнительно внутри можно использовать атрибуты aria-label для уточнения назначения блока, что особенно полезно при работе с экранными читалками.
Размещение <nav> в структуре страницы зависит от назначения меню. Основной блок с переходами по разделам обычно размещают в верхней части, вспомогательные – в сайдбаре или подвале. При необходимости на одной странице может быть несколько таких элементов, если они выполняют разные функции.
Где уместно применять тег nav на странице

<nav> используется только для групп ссылок, которые представляют навигацию по разделам сайта или приложения. Он не предназначен для любых списков ссылок.
Уместные примеры: главное меню сайта, блок ссылок в шапке, список переходов в подвале, панель с категориями интернет-магазина, оглавление длинной статьи или документации, меню в боковой колонке.
Не рекомендуется применять тег для разметки внутренних ссылок внутри статьи, ссылок на социальные сети в тексте или случайных повторяющихся блоков ссылок. В таких случаях корректнее использовать список или другие семантические контейнеры.
Размещение <nav> в документе допустимо несколько раз, если каждая область отражает самостоятельный набор навигации. Например, глобальное меню вверху и локальное меню для текущего раздела.
Разметка основного меню с помощью nav
Элемент <nav> применяется для группировки ссылок на ключевые разделы сайта. Обычно внутри него используют список <ul> с элементами <li>, в которых размещаются ссылки <a>.
Пример:
<nav>
<ul>
<li><a href="/">Главная</a></li>
<li><a href="/about">О нас</a></li>
<li><a href="/services">Услуги</a></li>
<li><a href="/contacts">Контакты</a></li>
</ul>
</nav>
Для экранных читалок рекомендуется добавлять атрибут aria-label, чтобы уточнить назначение меню, например <nav aria-label=»Основное меню»>.
Не следует помещать в <nav> все ссылки сайта. Используйте его только для основных разделов, чтобы структура оставалась понятной и доступной.
Вложенные списки внутри nav для многоуровневой навигации
Для построения многоуровневых меню в nav применяются вложенные списки. Каждый уровень вложенности создаётся с помощью дополнительного ul или ol внутри элемента li.
- Главная
- Услуги
- Разработка сайтов
- SEO-оптимизация
- Поддержка
- О компании
- История
- Команда
- Вакансии
- Контакты
При такой структуре поисковые системы и скринридеры корректно воспринимают вложенность. Дополнительно вложенные списки позволяют подключать JavaScript для раскрывающихся меню или применять стили для отображения подуровней при наведении.
Рекомендуется:
- Использовать ul вместо ol, так как порядок ссылок в меню обычно не имеет значения.
- Следить, чтобы вложенность не превышала 2–3 уровня, иначе ухудшается восприятие.
- Применять семантичные подписи ссылок без повторяющихся формулировок.
Использование атрибутов внутри nav

Элемент <nav> может содержать атрибуты, которые помогают структурировать код, улучшать доступность и управлять поведением блока навигации.
id– используется для привязки стилей или скриптов к конкретному блоку навигации.class– позволяет применять общие стили к нескольким элементам<nav>.role="navigation"– помогает скринридерам корректно интерпретировать элемент, особенно если структура документа сложная.aria-label– задаёт название для области навигации, например:<nav aria-label="Основное меню">.aria-labelledby– связывает блок навигации с заголовком, описывающим его назначение.
Рекомендуется:
- Применять
aria-label, если в документе несколько навигационных блоков (например, «верхнее меню» и «подвал»). - Использовать уникальные значения
idдля облегчения работы с JavaScript. - Добавлять
role="navigation"в случаях, когда есть риск неоднозначной интерпретации структуры.
Разграничение nav и других тегов для ссылок

Тег <nav> предназначен исключительно для блоков основного навигационного меню страницы. Он сигнализирует поисковым системам и вспомогательным технологиям, что внутри находятся ссылки на ключевые разделы сайта. Использовать <nav> для всех ссылок подряд не рекомендуется.
Для ссылок вне навигации применяются другие семантические теги:
| Тег | Назначение | Пример использования |
|---|---|---|
| <footer> | Ссылки и информация в нижней части страницы, авторские права, контакты | <a href=»/privacy»>Политика конфиденциальности</a> |
| <header> | Ссылки на логотип, контактные данные, глобальные элементы сайта | <a href=»/»>Главная</a> |
| <aside> | Боковые панели с дополнительными ссылками, рекламой или рекомендованным контентом | <a href=»/related-article»>Похожие статьи</a> |
| <p> и <span> | Встраивание ссылок в текст без выделения блока навигации | <a href=»/terms»>Условия использования</a> |
Рекомендуется применять <nav> только для основных разделов и ограничивать количество навигационных блоков до нескольких на страницу. Все остальные ссылки оформлять в контексте их семантического блока, чтобы улучшить восприятие и доступность сайта.
Роль nav в структуре документа для скринридеров
Тег <nav> обозначает блок основного навигационного меню на странице. Скринридеры используют этот тег для быстрого определения разделов с навигацией, позволяя пользователю пропускать контент и переходить напрямую к ссылкам.
Важно, чтобы внутри <nav> присутствовали семантически значимые ссылки. Каждая ссылка должна содержать понятный текст, описывающий цель перехода, без использования «здесь» или «кликни». Например, <a href="/contacts">Контакты</a>.
Рекомендуется ограничивать количество <nav> на странице до двух-трёх: основной навигации, вторичного меню и, при необходимости, хлебных крошек. Избыточные блоки навигации усложняют ориентацию для пользователей скринридеров.
Тег <nav> должен использоваться только для групп ссылок, предназначенных для перемещения по сайту. Вспомогательные ссылки, вроде «поделиться в соцсетях», следует размещать вне <nav>, чтобы не создавать путаницы в навигации.
При разработке мультиязычных сайтов указывайте атрибут lang для блока <nav>, если язык отличается от основного. Это помогает скринридерам корректно озвучивать ссылки.
Структура списка внутри <nav> повышает удобство навигации. Используйте <ul> и <li> для группировки ссылок: <nav><ul><li><a href="/about">О нас</a></li></ul></nav>. Скринридеры смогут сообщить количество элементов списка, облегчая понимание структуры меню.
Тег <nav> улучшает навигацию для пользователей с ограничениями зрения и позволяет реализовать логическую иерархию документа без дополнительных ARIA-меток, если используется корректно.
Стилизация блока nav через CSS

Для навигационного блока nav чаще всего задают фоновый цвет с помощью свойства background-color, чтобы отделить меню от основного контента. Например, темный фон #333 и светлый текст #fff создают контрастный вид.
Для горизонтального расположения ссылок внутри nav используют display: flex или display: inline-block для элементов <a>. Свойство justify-content: space-between равномерно распределяет ссылки по ширине блока.
Чтобы улучшить читаемость и интерактивность, добавляют padding и margin к ссылкам, например padding: 10px 20px. Для состояния при наведении применяют :hover с изменением цвета текста или фона.
Границы и тени помогают визуально выделить nav. Используют border-bottom: 2px solid #444 или box-shadow: 0 2px 5px rgba(0,0,0,0.3). Эти свойства не меняют структуру, но улучшают восприятие меню.
Для адаптивного дизайна применяют медиа-запросы. Например, при ширине экрана меньше 768px навигацию можно сделать вертикальной, добавив flex-direction: column и уменьшив padding ссылок.
Типографику настраивают через font-family, font-size и letter-spacing. Четкий шрифт без засечек и размер 16–18px обеспечивают комфортное чтение.
Для плавного изменения цвета и фона при наведении используют transition: background-color 0.3s, color 0.3s. Это создает аккуратный визуальный эффект без резких скачков.
Примеры правильного и неправильного использования nav
Правильное использование тега <nav> предполагает оборачивание им основного блока навигационных ссылок сайта. Например:
<nav>
<ul>
<li><a href="/home">Главная</a></li>
<li><a href="/about">О нас</a></li>
<li><a href="/contact">Контакты</a></li>
</ul>
</nav>
Такой подход облегчает поисковым системам и вспомогательным технологиям понимание структуры сайта, выделяя основную навигацию.
Неправильное использование возникает, когда <nav> применяется для обертки всех ссылок на странице или внутри незначимых элементов. Например:
<nav>
<p>Читать статью: <a href="/article1">Статья 1</a></p>
<p>Скачать файл: <a href="/file.pdf">Файл</a></p>
</nav>
Здесь навигация используется для случайных ссылок, не образующих основное меню. Такой подход нарушает семантику и усложняет восприятие страницы.
Рекомендации:
- Использовать
<nav>только для групп ссылок, которые повторяются на нескольких страницах и образуют основное меню. - Не помещать внутрь
<nav>единичные ссылки или ссылки на контент внутри статьи. - Можно применять несколько тегов
<nav>на странице, если есть отдельные блоки навигации, например, основное меню и подвал.
Вопрос-ответ:
Что такое тег <nav> в HTML?
Тег <nav> предназначен для выделения блоков навигации на странице. Обычно внутри него размещают ссылки на основные разделы сайта или на важные страницы, чтобы пользователи могли легко ориентироваться.
Можно ли использовать несколько тегов <nav> на одной странице?
Да, на одной странице может быть несколько блоков <nav>. Например, один блок может содержать главную навигацию по сайту, а другой — ссылки на дополнительные разделы или подкатегории. Важно, чтобы каждый блок имел логическое назначение, чтобы поисковые системы и пользователи понимали структуру страницы.
Чем тег <nav> отличается от обычного <div> с ссылками?
Главное отличие в семантике. <nav> явно сообщает браузеру и поисковым системам, что содержимое связано с навигацией. Внутри <div> можно размещать ссылки, но семантической значимости это не имеет, что может повлиять на доступность и индексирование.
Можно ли использовать <nav> для футера сайта?
Да, в футере часто размещают отдельный блок <nav> с дополнительными ссылками, например, на политику конфиденциальности, контакты или карту сайта. Такой подход помогает пользователям быстрее находить нужные разделы и поддерживает единообразие навигации.