Выпадающий пункт меню в навигационной панели

Здесь вы узнаете, как сделать выпадающий пункт меню в панели навигации при помощи CSS.


Выпадающий пункт меню в панели навигации

Попробовать самому » 


Как сделать выпадающий пункт меню в панели навигации

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

Шаг 1) Добавляем HTML:

Пример


<div class="navbar">
  <a href="#home">Главная</a>
  <a href="#news">Новости</a>
  <div class="dropdown">
    <button class="dropbtn">Действия
      <i class="fa fa-caret-down"></i>
    </button>
    <div class="dropdown-content">
      <a href="#">Ссылка 1</a>
      <a href="#">Ссылка 2</a>
      <a href="#">Ссылка 3</a>
    </div>
  </div>
</div>

Объяснение примера

Для активации выпадающего меню можно использовать любой элемент, например, <button>, <a> или <p>.

Чтобы создать выпадающее меню, используем контейнерный элемент (вроде элемента <div>) и добавляем внутри него ссылки.

Оборачиваем кнопку активации и само меню элементом <div>, чтобы корректно задать позицию выпадающего меню при помощи CSS.


Шаг 2) Добавляем CSS:

Пример


/* Контейнер навигационной панели */
.navbar {
  overflow: hidden;
  background-color: #333;
  font-family: Arial;
}

/* Ссылки навигационной панели */
.navbar a {
  float: left;
  font-size: 16px;
  color: white;
  text-align: center;
  padding: 14px 16px;
  text-decoration: none;
}

/* Контейнер выпадающего меню */
.dropdown {
  float: left;
  overflow: hidden;
}

/* Кнопка активации выпадающего меню */
.dropdown .dropbtn {
  font-size: 16px;
  border: none;
  outline: none;
  color: white;
  padding: 14px 16px;
  background-color: inherit;
  font-family: inherit; /* Важно для вертикального выравнивания на мобильных телефонах */
  margin: 0; /* Важно для вертикального выравнивания на мобильных телефонах */
}

/* Добавляем красный фон при наведении на ссылки навигационной панели */
.navbar a:hover, .dropdown:hover .dropbtn {
  background-color: red;
}

/* Содержимое выпадающего меню (скрыто по умолчанию) */
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f9f9f9;
  min-width: 160px;
  box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
  z-index: 1;
}

/* Ссылки выпадающего меню */
.dropdown-content a {
  float: none;
  color: black;
  padding: 12px 16px;
  text-decoration: none;
  display: block;
  text-align: left;
}

/* Добавляем серый фон при наведении на ссылки выпадающего меню */
.dropdown-content a:hover {
  background-color: #ddd;
}

/* Показываем выпадающее меню при наведении */
.dropdown:hover .dropdown-content {
  display: block;
}

Попробовать самому »

Объяснение примера

Мы задаем стили навигационной панели и ее ссылок: фоновый цвет, отступы и т.д.

Мы задаем стили кнопки активации выпадающего меню: фоновый цвет, отступы и т.д.

Класс .dropdown это контейнер элемента с классом .dropdown-content. Так как это элемент <div>, а не <a>, мы должны задать для него обтекание, чтобы гарантировать, что он будет расположен в одном ряду с другими ссылками.

Элемент с классом .dropdown-content в действительности и содержит выпадающее меню. По умолчанию он скрыт и показывается только при наведении на кнопку активации выпадающего меню. Обратите внимание, что свойство min-width имеет значение 160px. Вы можете задавать ему любой размер по своему желанию.

Чтобы выпадающее меню выглядело как "карточка", вместо рамки (border), мы используем свойство box-shadow. Также, чтобы выпадающее меню располагалось поверх остальных элементов, мы задаем z-index.

Селектор :hover используется, чтобы показывать выпадающее меню, когда пользователь наводит курсор мыши на кнопку активации выпадающего меню.

Выпадающее меню, срабатывающее по нажатию