Перейти к основному содержимому

Горизонтальная панель навигации CSS

Горизонтальная панель навигации размещает ссылки рядом друг с другом и обычно находится вверху веб-страницы.

Вокруг <ul> часто добавляют элемент <nav>, который служит контейнером панели.


Горизонтальная панель навигации с использованием Float

Один из способов создания горизонтальной панели навигации — задать float для элементов <li>.

Пример

Prompt
Создайте горизонтальную панель навигации, используя float для элементов li. Элемент ul без list-style, без margin/padding, с overflow hidden и тёмным фоном (#333333). Элементы li выравниваются по левому краю (float left). Ссылки блочные, белые, по центру, с отступом 14px 16px, без подчёркивания. При наведении фон меняется на #111111. Включите ссылки Главная, Новости, Контакты, О нас.
Результат: полная HTML-страница

Горизонтальная панель навигации с использованием Flex

CSS flexbox предлагает более современный способ: просто задайте display: flex для <ul>.

Flex-панель навигации

Prompt
Создайте горизонтальную панель навигации с помощью CSS flexbox (display: flex на ul). Элемент ul без list-style, без margin/padding, с тёмным фоном (#333333). Ссылки блочные, белые, с отступом 14px 16px, без подчёркивания. При наведении фон меняется на #111111. Включите ссылки Главная, Новости, Контакты, О нас.
Результат: полная HTML-страница

Центрированная flex-панель навигации

Чтобы переместить ссылки панели навигации в центр, добавьте к панели justify-content: center.

Prompt
Создайте горизонтально центрированную панель навигации с помощью CSS flexbox. Аналогично flex-панели навигации, но добавьте justify-content: center к ul для центрирования ссылок.
Результат: полная HTML-страница

Активное состояние

Пользователи видят, на какой странице находятся, когда её ссылка выделена с помощью класса «active».

Пример

Prompt
Создайте горизонтальную панель навигации с активным состоянием. Используйте панель навигации с тёмным фоном и добавьте класс "active" к ссылке Главная с background-color #04AA6D.
Результат: полная HTML-страница

Серая горизонтальная панель навигации

Здесь панель серая, с тонкой серой границей вокруг.

Пример

Prompt
Создайте серую горизонтальную панель навигации с использованием flexbox. Элемент ul имеет светло-серый фон (#f3f3f3), границу 1px solid #e7e7e7, без list-style, без margin/padding. Ссылки — тёмный текст с отступами. Включите ссылки Главная, Новости, Контакты, О нас.
Результат: полная HTML-страница

Выравнивание последней ссылки по правому краю

Любая ссылка или несколько ссылок могут находиться в правой части панели: задайте её элементу списка float: right.

Пример

Prompt
Создайте горизонтальную панель навигации, где последняя ссылка (О нас) выровнена по правому краю с помощью float: right для этого элемента li. Остальные ссылки выровнены по левому краю. Используйте стиль панели навигации с тёмным фоном.
Результат: полная HTML-страница

Разделители-границы

Разделители между ссылками создаёт border-right на каждом элементе <li>, кроме последнего.

Пример

Prompt
Создайте горизонтальную панель навигации с разделителями-границами между ссылками. Добавьте border-right: 1px solid #bbbbbb ко всем элементам li, кроме последнего (используя li:last-child). Используйте стиль панели навигации с тёмным фоном и float.
Результат: полная HTML-страница

Фиксированная панель навигации

Чтобы закрепить панель навигации вверху или внизу страницы, используйте свойство position вместе с top или bottom.

Зафиксировано вверху

Prompt
Создайте горизонтальную панель навигации, закреплённую вверху страницы, используя position: fixed, top: 0 и width: 100%. Добавьте достаточно содержимого в body, чтобы продемонстрировать прокрутку, пока панель навигации остаётся закреплённой. Добавьте margin-top к содержимому body, чтобы оно не было скрыто за панелью навигации.
Результат: полная HTML-страница

Зафиксировано внизу

Prompt
Создайте горизонтальную панель навигации, закреплённую внизу страницы, используя position: fixed, bottom: 0 и width: 100%. Добавьте достаточно содержимого в body, чтобы продемонстрировать прокрутку, пока панель навигации остаётся внизу.
Результат: полная HTML-страница

Липкая панель навигации

Для липкой панели навигации нужен position: sticky на <ul>. В зависимости от позиции прокрутки такой элемент переключается между относительным и фиксированным позиционированием.

Примечание: Липкое позиционирование работает, только когда указано хотя бы одно из свойств top, right, bottom или left.

Пример

Prompt
Создайте липкую (sticky) горизонтальную панель навигации, используя position: sticky и top: 0. Добавьте содержимое до и после панели навигации, чтобы продемонстрировать, что она становится фиксированной при прокрутке мимо неё.
Результат: полная HTML-страница

Выпадающее меню в панели навигации

При наведении курсора на пункт меню может появляться выпадающее меню, размещённое внутри панели навигации.

Пример

Prompt
Создайте горизонтальную панель навигации с выпадающим меню. Один из пунктов меню ("Dropdown") показывает выпадающий список ссылок при наведении. Используйте div внутри li для содержимого выпадающего меню, скрытого по умолчанию и отображаемого при наведении с position: absolute.
Результат: полная HTML-страница

Адаптивная панель навигации

С помощью медиазапросов CSS адаптивная верхняя навигация может переключаться с горизонтальной на вертикальную, когда экран становится меньше.

Пример

Prompt
Создайте адаптивную горизонтальную панель навигации, которая сворачивается в вертикальную на маленьких экранах с помощью медиазапросов CSS. На широких экранах ссылки отображаются горизонтально; на узких экранах они располагаются вертикально.
Результат: полная HTML-страница