Разделенная кнопка с выпадающим меню

 alexei 15/03/2021 - 09:12

Этот сниппет создает разделенную кнопку с выпадающим списком (меню) при помощи CSS.


Разделенная кнопка с выпадающим меню

Наведите курсор мышки на иконку стрелки, чтобы открыть выпадающее меню:


Как сделать разделенную кнопку с выпадающим меню

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

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


<!-- Библиотека иконок Font Awesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

<button class="btn">Кнопка</button>
<div class="dropdown">
  <button class="btn" style="border-left:1px solid navy">
    <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>

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

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

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

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

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


/* Вызывающая кнопка */
.btn {
  background-color: #2196F3;
  color: white;
  padding: 16px;
  font-size: 16px;
  border: none;
  outline: none;
}

/* Контейнер <div> - нужен для позиционирования выпадающего контента */
.dropdown {
  position: absolute;
  display: inline-block;
}

/* Выпадающий контент (по умолчанию скрыт) */
.dropdown-content {
  display: none;
  position: absolute;
  background-color: #f1f1f1;
  min-width: 160px;
  z-index: 1;
}

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

/* Изменяем цвет ссылки при наведении */
.dropdown-content a:hover {background-color: #ddd}

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

/* Изменяем фоновый цвет вызывающей кнопки при выводе выпадающего блока */
.btn:hover, .dropdown:hover .btn  {
  background-color: #0b7dda;
}