Выпадающее по клику меню: Выпадающее по клику меню на css

Содержание

Выпадающее по клику меню на css

я однажды реализовывал подобное меню. там смысл достаточно прост: делаем обычное навигационное меню. раз меню выпадающее - делаем первый и второй уровень (допустим). первый уровень отображается всегда, а вот второй скрываем с помощью display: none;. при наведении на определённый пункт меню первого уровня через псевдокласс :hover отображаем ссылки второго уровня. тут правильно задать позиционирование для второго уровня. а также очень важно (это проблема заставила меня долго мучаться) задать для пункта, при наведении на который будет появляться подменю, padding по-больше. чтобы площадь реагирования на наведение увеличить. Для большей наглядности мой код HTML (упрощённый):

<!DOCTYPE html PUBLIC "-//W3C/DTD//XTHML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtm1" xml:lang="en" lang="ru">
<head>
<title></title>
<link rel="stylesheet" type="text/css" href="style. css"/>
</head>
<body>
<ul>
            <li><a href="#">О компании</a></li>
            <li><a href="#">Услуги</a>
                <ul>
                    <li><a href="#">Все виды оценки</a></li>
                    <li><a href="#">Автоэкспертиза</a></li>
                    <li><a href="#">Автострахование</a></li>
                    <li><a href="#">Юридические услуги</a></li>
                </ul><!--end sub_nav-->
            </li>
            <li><a href="#">Тарифы</a></li>
            <li><a href="#">Новости</a></li>
            <li><a href="#">Контакты</a></li>
        </ul><!--end main_nav-->
</body>
</html>

И код CSS (тоже упрощён):

#main_nav {
            position: relative;
            top: 15px;
            margin-top: 14px;
            margin-left: 280px;
            }
        #main_nav li{
            display: inline;
            padding: 0 8px;
            border-left: 1px dotted #8b6619;
            position: relative;
            z-index: 2;
            }
        #main_nav li:first-child, #main_nav ul li {
            border-left: none;
            }
        #main_nav ul {
            display: none;
            position: absolute;
            top: 19px;
            left: 0;
            z-index: 1;
            width: 155px;
            }
        #main_nav li a, #main_nav li ul li a{
            color: #8b6619;
            font-family: "Times New Roman", serif;
            font-size: 0.
9em; font-weight: bold; text-decoration: none; outline: none; padding-bottom: 17px; } #main_nav li a:hover, #main_nav li ul a:hover { color: black; } /*--------------Подменю--------------*/ #main_nav li:hover ul { display: block; }

Вот и всё. Спасибо за голоса!)

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

Здесь представлен раскрывающий список или меню навигации, которое по клику раскрывалось и по второму клика курсора закрывается при помощи CSS3. Такой вид по функциям можно на сайте задействовать под навигацию, где на первой панели будет размешен раздел, а при открытии идут категорий. Также не исключаю, что эта функция отлично подойдет под навигацию по сайту, где будет занимать не там много места, ведь по умолчанию блок всегда закрытый.

Но только стоит сделать клик, как покажутся остальные запросы, что изначально вы их поместили под ключевые фразы для перехода на данный материал. Плюс все под категорий идут под своим оттенком цвета, это сделано на тот случай, если на сайте присутствует в дизайне цветовая палитра. Но вы как веб-разработчик можете все оставить как есть или выставить одну палитру, где также добавить как можно больше категорий, плюс шрифтовые знаки под тематику.

Так выглядит этот блок при установочном процессе:

Установка:

HTML

Код

<ul>
  <li>
  <a href="#" tabindex="1" >Мощные способы продвижения вашего бизнеса.</a>
  <ul>
  <li><a href="#1">Зеленый оттенок цвета</a></li>
  <li><a href="#2">Желтая гамма цвета</a></li>

  <li><a href="#3">Красная палитра стиля</a></li>
  </ul>  
  <br><br>
  <a href="#" tabindex="1" >UX vs. UI: что может сработать для вашего бренда</a>
  <ul>
  <li><a href="#1">Зеленый оттенок цвета</a></li>
  <li><a href="#2">Желтая гамма цвета</a></li>
  <li><a href="#3">Красная палитра стиля</a></li>
  </ul>  
  </li>  
  </ul>


CSS

Код

#navigatsion-karkas{
  width:100%;
  font-weight:bold;
}
#navigatsion-karkas li{
  margin-right:0px;
  position:relative;
  display:block;
}
#navigatsion-karkas li a{
  display:block;
  width:430px;
  padding:10px;
  color:#fff;
  background:#2f2f2f;
  text-decoration:none;
}
/*--- ВЫПАДАЮЩИЕ ПУНКТЫ ---*/
#navigatsion-karkas ul li{
  padding-top:5px;
  float:none;
}

#navigatsion-karkas li:hover ul

#navigatsion-karkas a:hover{
background:#2f2f2f;
}
#green a:hover{
  background: green;

}
#yellow a:hover {
  background:#FFA500;
}
#red a:hover {
background: #B22222;
}

. governmen
{
  display: none;
}
.osnovnoy-elemen:focus ~ .governmen,
.osnovnoy-elemen:active ~ .governmen,
.governmen:hover
{
  display: block;
}

.governmen2
{
  display: none;
}
.osnovnoy-elemen2:focus ~ .governmen2,
.osnovnoy-elemen2:active ~ .governmen2,
.governmen2:hover
{
  display: block;
}
#navigatsion-karkas li a.item{width: 430px;}
ul{padding:0; margin:0}


Здесь изначально в коде прописаны 2 элемента, где перед ними идет небольшое пространство, которое редактируется в прикрепленных стилях CSS, где можно самостоятельно убрать или сделать что то под вертикальное меню.

Также такой формат можно найти под различным стилем дизайна, где на форуме есть выпадающие блоки, которые работают в аналогичном направление, разве только стиль у них совершено разный.

Демонстрация

Выпадающие элементы. Компоненты · Bootstrap. Версия v4.3.1

Переключайте контекстные оверлеи для отображения списков ссылок и многого другого с помощью модуля выпадающих меню Bootstrap.

Обзор

Выпадающие элементы - это переключаемые, контекстные элементы поверхностного наложения для отображения списков ссылок и т.п. Они интерактивны благодаря плагину JavaScript в BS4. Функциональность toggle в выпадающих элементах запускается по клику, а не по наведению – это сделано умышленно.

Выпадающие элементы «построены» на сторонней библиотеке Popper.js, которая обеспечивает динамическое позиционирование и определение размера окна просмотра. Обязательно включите popper.min.js перед JavaScript Bootstrap или используйте bootstrap.bundle.min.js / bootstrap.bundle.js, который содержит Popper.js.

Если вы компилируете наши JS файлы, необходим util.js.

Доступность

Стандарт WAI

ARIA описывает и определяет виджет role="menu" как настоящий виджет, но лишь для меню «а-ля приложение», запускающих действия или функции. Меню ARIA могут содержать лишь пункты меню, чекбоксы, «радио-кнопки», группы «радио-кнопок» и подменю.

Выпадающие элементы Bootstrap, с другой стороны, спроектированы для решения множества задач и могут работать в разных структурах разметки. Например, можно создать выпадающие элементы, содержащие дополнительные поля ввода и элементы контроля форм, такие как поиск или поле ввода логина. По этой причине BS4 не «ожидает» (и не добавляет автоматически) ни один из атрибутов (role и aria-), необходимых для меню согласно стандарту ARIA.

Однако Bootstrap всегда добавляет встроенную поддержку для большинства стандартных взаимодействий меню и клавиатуры, таких как возможность двигаться через отдельные элементы класса

.dropdown-item кнопками курсора на клавиатуре и закрывать меню кнопкой ESC.

Примеры

Оберните «контролирующий» элемент (ссылку или кнопку) выпадающего элемента и выпадающее меню классом . dropdown или другим элементом с position: relative;. При необходимости выпадающие элементы можно запускать из элементов <a> или <button>.

Выпадающие элементы одинарных кнопок

Любую одинарную кнопку .btn можно превратить в «контролирующий» элемент (кнопка открытия\скрытия) при помощи некоторых изменений разметки. Вот как вы можете это сделать также и с элементами <button>:

<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Кнопка выпадающего списка
  </button>
  <div aria-labelledby="dropdownMenuButton">
    <a href="#">Action</a>
    <a href="#">Another action</a>
    <a href="#">Something else here</a>
  </div>
</div>

А вот так - с <a> элементами:

<div>
  <a href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Выпадающая ссылка
  </a>

  <div aria-labelledby="dropdownMenuLink">
    <a href="#">Action</a>
    <a href="#">Another action</a>
    <a href="#">Something else here</a>
  </div>
</div>

Самое забавное, что это можно сделать с любым из вариантов кнопок: «главная, вторичная, успех, инфо, предупреждение, опасность»:

Предупреждение
<!-- Example single danger button -->
<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Action
  </button>
  <div>
    <a href="#">Action</a>
    <a href="#">Another action</a>
    <a href="#">Something else here</a>
    <div></div>
    <a href="#">Separated link</a>
  </div>
</div>

Выпадающие элементы кнопок с разделенными зонами

По такому же принципу создавайте выпадающие элементы в кнопках с разделенными зонами, используя почти такую же разметку, как в пункте выше, но с добавлением класса . dropdown-toggle-split для правильного отступа вокруг выпадающего элемента.

Тут используется дополнительный класс, который уменьшает на 25% горизонтальный паддинг padding с обеих сторон выпадающей «каретки» и удаляет margin-left, добавленный для выпадающих элементов обычных кнопок. Эти изменения позволяют центрировать выпадающую «каретку» в разделенной кнопке и обеспечивают более подходящий размер «зоны клика» вблизи главной кнопки.

Главная Toggle Dropdown Вторичная Toggle Dropdown Успех Toggle Dropdown Предупреждение Toggle Dropdown Опасность Toggle Dropdown
<!-- Example split danger button --> <div> <button type="button">Action</button> <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> <span>Toggle Dropdown</span> </button> <div> <a href="#">Action</a> <a href="#">Another action</a> <a href="#">Something else here</a> <div></div> <a href="#">Separated link</a> </div> </div>

Размеры

Выпадающие элементы кнопок работают с кнопками любых размеров, включая кнопки по умолчанию и кнопки с выпадающими элементами с разделенными зонами.

<!-- Large button groups (default and split) -->
<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Large button
  </button>
  <div>
    ...
  </div>
</div>
<div>
  <button type="button">
    Large button
  </button>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    <span>Toggle Dropdown</span>
  </button>
  <div>
    ...
  </div>
</div>

<!-- Small button groups (default and split) -->
<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Small button
  </button>
  <div>
    ...
  </div>
</div>
<div>
  <button type="button">
    Small button
  </button>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    <span>Toggle Dropdown</span>
  </button>
  <div>
    . ..
  </div>
</div>

Направления

«Выпадающий вверх»

Добавьте класс .dropup и выпадающий элемент будет «выпадать» вверх.

Split dropup Toggle Dropdown
<!-- Default dropup button -->
<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropup
  </button>
  <div>
    <!-- Dropdown menu links -->
  </div>
</div>

<!-- Split dropup button -->
<div>
  <button type="button">
    Split dropup
  </button>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    <span>Toggle Dropdown</span>
  </button>
  <div>
    <!-- Dropdown menu links -->
  </div>
</div>

«Выпадающий вправо»

Добавьте класс . dropright и выпадающий элемент будет «выпадать» вправо.

Split dropright Toggle Dropdright
<!-- Default dropright button -->
<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropright
  </button>
  <div>
    <!-- Dropdown menu links -->
  </div>
</div>

<!-- Split dropright button -->
<div>
  <button type="button">
    Split dropright
  </button>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    <span>Toggle Dropright</span>
  </button>
  <div>
    <!-- Dropdown menu links -->
  </div>
</div>

«Выпадающий влево»

Добавьте класс . dropleft и выпадающий элемент будет «выпадать» влево.

<!-- Default dropleft button -->
<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropleft
  </button>
  <div>
    <!-- Dropdown menu links -->
  </div>
</div>

<!-- Split dropleft button -->
<div>
  <div role="group">
    <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
      <span>Toggle Dropleft</span>
    </button>
    <div>
      <!-- Dropdown menu links -->
    </div>
  </div>
  <button type="button">
    Split dropleft
  </button>
</div>

Исторически содержимым выпадающих элементов всегда были ссылки, но BS4 изменил это. Сейчас вы можете использовать в качестве содержимого выпадающих элементов <button>, а не только <a>.

<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropdown
  </button>
  <div aria-labelledby="dropdownMenu2">
    <button type="button">Action</button>
    <button type="button">Another action</button>
    <button type="button">Something else here</button>
  </div>
</div>

Вы также можете создать неинтерактивные выпадающие элементы класса .dropdown-item-text. Свободно стилизуйте их обычным CSS.

<div>
  <span>Dropdown item text</span>
  <a href="#">Action</a>
  <a href="#">Another action</a>
  <a href="#">Something else here</a>
</div>

Активные элементы меню

Добавьте класс . active к элементу выпадающего меню для его стилизации как «активированного».

<div>
  <a href="#">Regular link</a>
  <a href="#">Active link</a>
  <a href="#">Another link</a>
</div>

Неактивные элементы меню

Добавьте класс .disabled к элементу выпадающего меню для его стилизации как «деактивированного».

<div>
  <a href="#">Regular link</a>
  <a href="#">Disabled link</a>
  <a href="#">Another link</a>
</div>

По умолчанию выпадающее меню автоматически расположено в 100% от вершины и на левой стороне родителя. Добавьте класс .dropdown-menu-right к элементу класса .dropdown-menu для выравнивания выпадающего меню по правой стороне.

Внимание! Выпадающие элементы позиционируются благодаря Popper.js (за исключением случаев, когда они содержатся в navbar).

<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Right-aligned menu
  </button>
  <div>
    <button type="button">Action</button>
    <button type="button">Another action</button>
    <button type="button">Something else here</button>
  </div>
</div>

Отзывчивое выравнивание

Если вы хотите использовать адаптивное выравнивание, отключите динамическое позиционирование, добавив атрибут data-display="static", и используйте классы адаптивных вариантов.

Чтобы выровнять выпадающее меню вправо с заданной точкой останова или больше, добавьте . dropdown-menu{-sm|-md|-lg|-xl}-right.

Left-aligned but right aligned when large screen
<div>
  <button type="button" data-toggle="dropdown" data-display="static" aria-haspopup="true" aria-expanded="false">
    Left-aligned but right aligned when large screen
  </button>
  <div>
    <button type="button">Action</button>
    <button type="button">Another action</button>
    <button type="button">Something else here</button>
  </div>
</div>

Чтобы выровнять выпадающее меню влево с заданной точкой останова или более, добавьте .dropdown-menu-right и .dropdown-menu{-sm|-md|-lg|-xl}-left.

Right-aligned but left aligned when large screen
<div>
  <button type="button" data-toggle="dropdown" data-display="static" aria-haspopup="true" aria-expanded="false">
    Right-aligned but left aligned when large screen
  </button>
  <div>
    <button type="button">Action</button>
    <button type="button">Another action</button>
    <button type="button">Something else here</button>
  </div>
</div>

Обратите внимание, что вам не нужно добавлять атрибут data-display="static" к выпадающим кнопкам на панелях навигации, поскольку Popper. js не используется на панелях навигации.

Добавьте заголовок, чтобы обозначить секции действий любого выпадающего меню.

<div>
  <h6>Dropdown header</h6>
  <a href="#">Action</a>
  <a href="#">Another action</a>
</div>

Разделители меню

Разделяйте группы родственных элементов меню разделителем.

<div>
  <a href="#">Action</a>
  <a href="#">Another action</a>
  <a href="#">Something else here</a>
  <div></div>
  <a href="#">Separated link</a>
</div>

Текст меню

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

<div>
  <p>
    Some example text that's free-flowing within the dropdown menu.
  </p>
  <p>
    And this is more example text.
  </p>
</div>

Формы меню

Расположите форму внутри выпадающего меню, и используйте утилиты паддинга или марджина для ее уплотнения.

<div>
  <form>
    <div>
      <label for="exampleDropdownFormEmail1">Email address</label>
      <input type="email" placeholder="[email protected]">
    </div>
    <div>
      <label for="exampleDropdownFormPassword1">Password</label>
      <input type="password" placeholder="Password">
    </div>
    <div>
      <div>
        <input type="checkbox">
        <label for="dropdownCheck">
          Remember me
        </label>
      </div>
    </div>
    <button type="submit">Sign in</button>
  </form>
  <div></div>
  <a href="#">New around here? Sign up</a>
  <a href="#">Forgot password?</a>
</div>
<form>
  <div>
    <label for="exampleDropdownFormEmail2">Email address</label>
    <input type="email" placeholder="[email protected] com">
  </div>
  <div>
    <label for="exampleDropdownFormPassword2">Password</label>
    <input type="password" placeholder="Password">
  </div>
  <div>
    <div>
      <input type="checkbox">
      <label for="dropdownCheck2">
        Remember me
      </label>
    </div>
  </div>
  <button type="submit">Sign in</button>
</form>

Параметры раскрывающегося списка

Используйте data-offset или data-reference, чтобы изменить местоположение раскрывающегося списка.

<div>
  <div>
    <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-offset="10,20">
      Offset
    </button>
    <div aria-labelledby="dropdownMenuOffset">
      <a href="#">Action</a>
      <a href="#">Another action</a>
      <a href="#">Something else here</a>
    </div>
  </div>
  <div>
    <button type="button">Reference</button>
    <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-reference="parent">
      <span>Toggle Dropdown</span>
    </button>
    <div aria-labelledby="dropdownMenuReference">
      <a href="#">Action</a>
      <a href="#">Another action</a>
      <a href="#">Something else here</a>
      <div></div>
      <a href="#">Separated link</a>
    </div>
  </div>
</div>

Использование

Через атрибуты или JavaScript, плагин выпадающих элементов изменяет (показывает скрытоесодержимое) состояние содержимого (выпадающие меню) изменением класса . show элемента родительского списка. Атрибут data-toggle="dropdown" отвечает за закрытие выпадающих меню на уровне приложения, так что будет неплохой идеей всегда использовать данный атрибут.

На устройствах, активируемых касанием, открытие выпадающего элемента добавляет пустые обработчики ($.noop) mouseover к непосредственным «детям» элемента <body>. Этот, по общему мнению, некрасивый хак (без которого любое касание в iOS вне выпадающего элемента не закроет выпадающий элемент) необходим для обработки проблемы с делегированием событий в iOS. Как только выпадающий элемент закрыт, эти дополнительные пустые обработчики удаляются.

Через атрибуты

Добавьте к ссылке или кнопке атрибут data-toggle="dropdown" для скрытия\показа выпадающего элемента.

<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropdown trigger
  </button>
  <div aria-labelledby="dLabel">
    . ..
  </div>
</div>

Через JS

Управляйте выпадающими элементами с помощью JavaScript:

$('.dropdown-toggle').dropdown()
data-toggle="dropdown" still required

Независимо от того, управляете вы выпадающим элементом через JavaScript или атрибутами, атрибут data-toggle="dropdown" всегда необходим в элементе, запускающем выпадающий элемент.

Параметры

Передавайте параметры через JavaScript или атрибуты. Если используются атрибуты, добавляйте название параметра к data- как в data-offset="".

Название Тип По умолч. Описание
offset number | string | function 0

Смещение раскрывающегося списка относительно его цели.

Когда функция используется для определения смещения, она вызывается с объектом, содержащим данные смещения в качестве первого аргумента. Функция должна возвращать объект с такой же структурой. Узел DOM запускающего элемента передается в качестве второго аргумента.

Смещение выпадающего элемента относительно его триггера. См. отступы Popper.js

flip boolean true Позволяет выпадающему элементу «перевернуться», если произошло перекрытие другого элемента. Больше информации: flip docs.
boundary string | element 'scrollParent' Граница ограничения переполнения выпадающего меню. Принимает значения 'viewport', 'window', 'scrollParent' или ссылку HTMLElement (только для JavaScript). Для получения дополнительной информации обратитесь к документации preventOverflow от Popper. js.
reference string | element 'toggle' Reference element of the dropdown menu. Accepts the values of 'toggle', 'parent', or an HTMLElement reference. For more information refer to Popper.js's referenceObject docs.
display string dynamic | static By default, we use Popper.js for dynamic positioning. Disable this with `static`.

Обратите внимание, что если для boundary установлено значение, отличное от 'scrollParent', позиция position: static применяется к контейнеру .dropdown.

Методы

Метод Описание
$().dropdown('toggle') Задействует поведение toggle в выпадающем меню данного навбара или при навигации «TAB»ом.
$().dropdown('show') Показывает выпадающее меню данной навигационной панели или вкладки.
$().dropdown('hide') Скрывает выпадающее меню данной навигационной панели или вкладки.
$().dropdown('update') Обновляет позицию «выпадения» элемента.
$().dropdown('dispose') Уничтожает выпадающий элемент.

События

Все события выпадающих элементов наступают в родительском элементе класса .dropdown-menu и несут свойство relatedTarget, значение которого равно элементу «якоря» (ссылка, т.е. <a>), запускающего функциональность toggle.

Событие Описание
show.bs.dropdown Это событие наступает немедленно по вызову экземпляра метода show.
shown.bs.dropdown Это событие наступает, когда выпадающий элемент стал видимым юзеру (будет ждать завершения CSS-переходов).
hide.bs.dropdown Это событие наступает немедленно по вызову экземпляра метода hide.
hidden.bs.dropdown Это событие наступает, когда выпадающий элемент стал невидимым юзеру (будет ждать завершения CSS-переходов).
$('#myDropdown').on('show.bs.dropdown', function () {
  // do something…
})

Выпадающее меню в MODX с использованием Bootstrap

Разберём два способа создания выпадающего меню для MODX с помощью фреймворка Bootstrap. Для создания меню возьмём компонент PdoMenu.

Если вы не знаете, как пользоваться PdoMenu, то читайте статью - создание меню в MODX c помощью PdoMenu.

Выпадающее меню по клику

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


[[pdoMenu? 
    &level=`2` 
    &parents=`0`
    &outerClass=`nav navbar-nav`
    &tplOuter=`@INLINE <ul [[+classes]]>[[+wrapper]]</ul>` 
    &tplInner=`@INLINE <ul>[[+wrapper]]</ul>`
    &tplParentRow=`@INLINE <li [[+classes]]>
                                <a data-toggle="dropdown" href="[[+link]]" [[+attributes]]>
                                    [[+menutitle]]<span></span>
                                </a>
                                [[+wrapper]]
                            </li>`
]]

Всё просто, мы просто подогнали наш компонент для вызова стандартного bootstrap-меню.

Выпадающее меню при наведении

Вот здесь уже по сложнее, заметим то, что по умолчанию выпадающее меню в bootstrap не показывается через наведение.

Вызываем наше меню следующим образом:


[[pdoMenu?  
    &level=`2` 
    &parents=`0`
    &outerClass=`nav navbar-nav`
    &tplOuter=`@INLINE <ul[[+classes]]>[[+wrapper]]</ul>` 
    &tplInner=`@INLINE <ul>[[+wrapper]]</ul>` 
    &tplParentRow=`@INLINE  <li[[+classes]] dropdown>
                                <a[[+attributes]] data-hover="dropdown" data-delay="100" data-close-others="false" href="[[+link]]" [[+attributes]]>
                                    [[+menutitle]]
                                </a>
                               [[+wrapper]]
                            </li>`
]]

Также для работы следует подключить скрипт (подключите его ниже библиотеки bootstrap)

Скачать скрипт bootstrap3-hover

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

Выпадающее меню с использованием только CSS и недокументированных возможностей элемента флажка

В этом уроке мы рассмотрим создание выпадающего меню на чистом CSS. Этот способ основан на применении элемента HTML флажка и интересном использовании классов и селекторов CSS без единой строки JavaScript. Демонстрацию работы этого способа и весь нужный код можно увидеть ниже. Также можно скачать полный исходный код по ссылке в конце урока.

 

 


Разметка

Структура HTML выглядит следующим образом. Важно отметить, что элемент ввода должен располагаться первым, до элементов подписи и ненумерованного списка. Позже, когда мы будем разбирать код CSS, станет понятно, почему.

 

<div>
    <input type="checkbox">
    <label for="checkbox_toggle">Click to Expand</label>
    <ul>
        <li><a href="#">Link One</a></li>
        <li><a href="#">Link Two</a></li>
        <li><a href="#">Link Three</a></li>
        <li><a href="#">Link Four</a></li>
    </ul>
</div>

Как Вы видите, здесь нет ничего сложного, все элементы HTML обычные, широко используемые:

  • В блочном элементе находится все остальное.
  • Элемент ввода типа флажок нужен из-за его возможности быть установленным или неустановленным. Он будет спрятан все время.
  • Элемент подписи будет использоваться для переключения состояния элемента ввода и вызова выпадающего меню.
  • Элемент ненумерованного списка — это просто список, который нужно сделать видимым, когда развернуто выпадающее меню. Это может быть и любой другой элемент.

Недокументированные возможности элемента флажка

Нам нужен элемент флажка только ради его установленного состояния, которому можно задать стили с помощью псевдокласса :checked. Установка и снятие флажка делается посредством нажатия на элемент подписи, что является обычной функцией браузера. Сначала спрячем элемент флажка:

 

input[type=checkbox]{
    display: none;
}

Еще спрячем по умолчанию элемент ненумерованного списка — это выпадающее меню, которое должно быть видно, только когда оно развернуто:

 

А вот и недокументированная возможность. Если объединить псевдокласс :checked с родственным селектором ~, можно изменять свойства CSS элементов, следующих за элементом флажка. Это причина, по которой нужно, чтобы элемент флажка располагался выше других элементов в дереве объектов документа.

 

input[type=checkbox]:checked ~ ul {
    display: block
}

Код выше покажет ненумерованный список, только если установлен флажок. Так как у элемента ввода типа флажок возможно только два состояния, он отлично подходит для переключения элементов между развернутым и спрятанным состояниями.

Надеемся, вам понравился этот урок.

Автор урока Danny Markov

Перевод — Дежурка

Смотрите также:

Выпадающие списки · Bootstrap 4 на русском

Переключайте контекстные оверлеи для отображения списков ссылок и многого другого с помощью модуля выпадающих меню Bootstrap.

Обзор

Выпадающие списки - это переключаемые, контекстные элементы поверхностного наложения для отображения списков ссылок и т. п. Они интерактивны благодаря плагину JavaScript. Функциональность toggle в выпадающих элементах запускается по клику, а не по наведению – это сделано умышленно.

Выпадающие списки построены на сторонней библиотеке Popper.js, которая обеспечивает динамическое позиционирование и определение размера окна просмотра. Обязательно включите popper.min.js перед JavaScript Bootstrap или используйте bootstrap.bundle.min.js / bootstrap.bundle.js, который содержит Popper.js.

Если вы компилируете наши JS файлы, необходим util.js.

Доступность

Стандарт WAI ARIA описывает и определяет виджет role="menu" как настоящий виджет, но лишь для меню приложений, запускающих действия или функции. Меню ARIA могут содержать лишь пункты меню, чекбоксы, радио-кнопки, группы радио-кнопок и подменю.

Выпадающие списки Bootstrap, с другой стороны, спроектированы для решения множества задач и могут работать в разных структурах разметки. Например, можно создать выпадающие списки, содержащие дополнительные поля ввода и элементы контроля форм, такие как поиск или поле ввода логина. По этой причине Bootstrap не ожидает (и не добавляет автоматически) ни один из атрибутов (role и aria-), необходимых для меню согласно стандарту ARIA.

Однако Bootstrap всегда добавляет встроенную поддержку для большинства стандартных взаимодействий меню и клавиатуры, таких как возможность двигаться через отдельные элементы класса .dropdown-item кнопками курсора на клавиатуре и закрывать меню кнопкой ESC.

Примеры

Оберните контролирующий элемент выпадающего элемента и выпадающее меню классом .dropdown или другим элементом с position: relative;. При необходимости выпадающие списки можно запускать из элементов <a> или <button>.

Выпадающие списки одинарных кнопок

Любую одинарную кнопку .btn можно превратить в контролирующий элемент (кнопка открытия\скрытия) при помощи некоторых изменений разметки. Вот как вы можете это сделать также и с элементами <button>:

<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Кнопка выпадающего списка
  </button>
  <div aria-labelledby="dropdownMenuButton">
    <a href="#">Action</a>
    <a href="#">Another action</a>
    <a href="#">Something else here</a>
  </div>
</div>

А вот так - с <a> элементами:

<div>
  <a href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Выпадающая ссылка
  </a>

  <div aria-labelledby="dropdownMenuLink">
    <a href="#">Action</a>
    <a href="#">Another action</a>
    <a href="#">Something else here</a>
  </div>
</div>

Самое забавное, что это можно сделать с любым из вариантов кнопок: главная, вторичная, успех, инфо, предупреждение, опасность:

Предупреждение
<!-- Example single danger button -->
<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Action
  </button>
  <div>
    <a href="#">Action</a>
    <a href="#">Another action</a>
    <a href="#">Something else here</a>
    <div></div>
    <a href="#">Separated link</a>
  </div>
</div>

Выпадающие списки кнопок с разделенными зонами

По такому же принципу создавайте выпадающие списки в кнопках с разделенными зонами, используя почти такую же разметку, как в пункте выше, но с добавлением класса . dropdown-toggle-split для правильного отступа вокруг выпадающего элемента.

Тут используется дополнительный класс, который уменьшает на 25% горизонтальный паддинг padding с обеих сторон выпадающей «каретки» и удаляет margin-left, добавленный для выпадающих элементов обычных кнопок. Эти изменения позволяют центрировать выпадающую «каретку» в разделенной кнопке и обеспечивают более подходящий размер зоны клика вблизи главной кнопки.

Главная Toggle Dropdown Вторичная Toggle Dropdown Успех Toggle Dropdown Предупреждение Toggle Dropdown Опасность Toggle Dropdown
<!-- Example split danger button -->
<div>
  <button type="button">Action</button>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    <span>Toggle Dropdown</span>
  </button>
  <div>
    <a href="#">Action</a>
    <a href="#">Another action</a>
    <a href="#">Something else here</a>
    <div></div>
    <a href="#">Separated link</a>
  </div>
</div>

Размеры

Выпадающие элементы кнопок работают с кнопками любых размеров, включая кнопки по умолчанию и кнопки с выпадающими элементами с разделенными зонами.

<!-- Large button groups (default and split) -->
<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Large button
  </button>
  <div>
    ...
  </div>
</div>
<div>
  <button type="button">
    Large button
  </button>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    <span>Toggle Dropdown</span>
  </button>
  <div>
    ...
  </div>
</div>

<!-- Small button groups (default and split) -->
<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Small button
  </button>
  <div>
    ...
  </div>
</div>
<div>
  <button type="button">
    Small button
  </button>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    <span>Toggle Dropdown</span>
  </button>
  <div>
    . ..
  </div>
</div>

Направления

Выпадающий вверх

Добавьте класс .dropup и выпадающий элемент будет выпадать вверх.

Split dropup Toggle Dropdown
<!-- Default dropup button -->
<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropup
  </button>
  <div>
    <!-- Dropdown menu links -->
  </div>
</div>

<!-- Split dropup button -->
<div>
  <button type="button">
    Split dropup
  </button>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    <span>Toggle Dropdown</span>
  </button>
  <div>
    <!-- Dropdown menu links -->
  </div>
</div>

Выпадающий вправо

Добавьте класс .dropright и выпадающий элемент будет выпадать вправо.

Split dropright Toggle Dropdright
<!-- Default dropright button -->
<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropright
  </button>
  <div>
    <!-- Dropdown menu links -->
  </div>
</div>

<!-- Split dropright button -->
<div>
  <button type="button">
    Split dropright
  </button>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    <span>Toggle Dropright</span>
  </button>
  <div>
    <!-- Dropdown menu links -->
  </div>
</div>

Выпадающий влево

Добавьте класс .dropleft и выпадающий элемент будет выпадать влево.

<!-- Default dropleft button -->
<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropleft
  </button>
  <div>
    <!-- Dropdown menu links -->
  </div>
</div>

<!-- Split dropleft button -->
<div>
  <div role="group">
    <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
      <span>Toggle Dropleft</span>
    </button>
    <div>
      <!-- Dropdown menu links -->
    </div>
  </div>
  <button type="button">
    Split dropleft
  </button>
</div>

Исторически содержимым выпадающих элементов всегда были ссылки, но Bootstrap изменил это. Сейчас вы можете использовать в качестве содержимого выпадающих элементов <button>, а не только <a>.

<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropdown
  </button>
  <div aria-labelledby="dropdownMenu2">
    <button type="button">Action</button>
    <button type="button">Another action</button>
    <button type="button">Something else here</button>
  </div>
</div>

Вы также можете создать неинтерактивные выпадающие элементы класса .dropdown-item-text. Свободно стилизуйте их обычным CSS.

<div>
  <span>Dropdown item text</span>
  <a href="#">Action</a>
  <a href="#">Another action</a>
  <a href="#">Something else here</a>
</div>

Активные элементы меню

Добавьте класс . active к элементу выпадающего меню для его стилизации как активированного.

<div>
  <a href="#">Regular link</a>
  <a href="#">Active link</a>
  <a href="#">Another link</a>
</div>

Неактивные элементы меню

Добавьте класс .disabled к элементу выпадающего меню для его стилизации как деактивированного.

<div>
  <a href="#">Regular link</a>
  <a href="#">Disabled link</a>
  <a href="#">Another link</a>
</div>

По умолчанию выпадающее меню автоматически расположено в 100% от вершины и на левой стороне родителя. Добавьте класс .dropdown-menu-right к элементу класса .dropdown-menu для выравнивания выпадающего меню по правой стороне.

Внимание! Выпадающие списки позиционируются благодаря Popper. js (за исключением случаев, когда они содержатся в navbar).

<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Right-aligned menu
  </button>
  <div>
    <button type="button">Action</button>
    <button type="button">Another action</button>
    <button type="button">Something else here</button>
  </div>
</div>

Отзывчивое выравнивание

Если вы хотите использовать адаптивное выравнивание, отключите динамическое позиционирование, добавив атрибут data-display="static", и используйте классы адаптивных вариантов.

Чтобы выровнять выпадающее меню вправо с заданной точкой останова или больше, добавьте .dropdown-menu{-sm|-md|-lg|-xl}-right.

Left-aligned but right aligned when large screen
<div>
  <button type="button" data-toggle="dropdown" data-display="static" aria-haspopup="true" aria-expanded="false">
    Left-aligned but right aligned when large screen
  </button>
  <div>
    <button type="button">Action</button>
    <button type="button">Another action</button>
    <button type="button">Something else here</button>
  </div>
</div>

Чтобы выровнять выпадающее меню влево с заданной точкой останова или более, добавьте .dropdown-menu-right и .dropdown-menu{-sm|-md|-lg|-xl}-left.

Right-aligned but left aligned when large screen
<div>
  <button type="button" data-toggle="dropdown" data-display="static" aria-haspopup="true" aria-expanded="false">
    Right-aligned but left aligned when large screen
  </button>
  <div>
    <button type="button">Action</button>
    <button type="button">Another action</button>
    <button type="button">Something else here</button>
  </div>
</div>

Обратите внимание, что вам не нужно добавлять атрибут data-display="static" к выпадающим кнопкам на панелях навигации, поскольку Popper.js не используется на панелях навигации.

Добавьте заголовок, чтобы обозначить секции действий любого выпадающего меню.

<div>
  <h6>Dropdown header</h6>
  <a href="#">Action</a>
  <a href="#">Another action</a>
</div>

Разделители меню

Разделяйте группы родственных элементов меню разделителем.

<div>
  <a href="#">Action</a>
  <a href="#">Another action</a>
  <a href="#">Something else here</a>
  <div></div>
  <a href="#">Separated link</a>
</div>

Текст меню

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

<div>
  <p>
    Some example text that's free-flowing within the dropdown menu.
  </p>
  <p>
    And this is more example text.
  </p>
</div>

Формы меню

Расположите форму внутри выпадающего меню, и используйте утилиты паддинга или марджина для ее уплотнения.

<div>
  <form>
    <div>
      <label for="exampleDropdownFormEmail1">Email address</label>
      <input type="email" placeholder="[email protected]">
    </div>
    <div>
      <label for="exampleDropdownFormPassword1">Password</label>
      <input type="password" placeholder="Password">
    </div>
    <div>
      <div>
        <input type="checkbox">
        <label for="dropdownCheck">
          Remember me
        </label>
      </div>
    </div>
    <button type="submit">Sign in</button>
  </form>
  <div></div>
  <a href="#">New around here? Sign up</a>
  <a href="#">Forgot password?</a>
</div>
<form>
  <div>
    <label for="exampleDropdownFormEmail2">Email address</label>
    <input type="email" placeholder="[email protected]">
  </div>
  <div>
    <label for="exampleDropdownFormPassword2">Password</label>
    <input type="password" placeholder="Password">
  </div>
  <div>
    <div>
      <input type="checkbox">
      <label for="dropdownCheck2">
        Remember me
      </label>
    </div>
  </div>
  <button type="submit">Sign in</button>
</form>

Параметры раскрывающегося списка

Используйте data-offset или data-reference, чтобы изменить местоположение раскрывающегося списка.

<div>
  <div>
    <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-offset="10,20">
      Offset
    </button>
    <div aria-labelledby="dropdownMenuOffset">
      <a href="#">Action</a>
      <a href="#">Another action</a>
      <a href="#">Something else here</a>
    </div>
  </div>
  <div>
    <button type="button">Reference</button>
    <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" data-reference="parent">
      <span>Toggle Dropdown</span>
    </button>
    <div aria-labelledby="dropdownMenuReference">
      <a href="#">Action</a>
      <a href="#">Another action</a>
      <a href="#">Something else here</a>
      <div></div>
      <a href="#">Separated link</a>
    </div>
  </div>
</div>

Использование

Через атрибуты или JavaScript, плагин выпадающих элементов изменяет (показывает скрытоесодержимое) состояние содержимого (выпадающие меню) изменением класса .show элемента родительского списка. Атрибут data-toggle="dropdown" отвечает за закрытие выпадающих меню на уровне приложения, так что будет неплохой идеей всегда использовать данный атрибут.

На устройствах, активируемых касанием, открытие выпадающего элемента добавляет пустые обработчики ($.noop) mouseover к непосредственным дочерним элемента <body>. Этот, по общему мнению, некрасивый хак (без которого любое касание в iOS вне выпадающего элемента не закроет выпадающий элемент) необходим для обработки проблемы с делегированием событий в iOS. Как только выпадающий элемент закрыт, эти дополнительные пустые обработчики удаляются.

Через атрибуты

Добавьте к ссылке или кнопке атрибут data-toggle="dropdown" для скрытия\показа выпадающего элемента.

<div>
  <button type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Dropdown trigger
  </button>
  <div aria-labelledby="dLabel">
    ...
  </div>
</div>

Через JS

Управляйте выпадающими элементами с помощью JavaScript:

$('.dropdown-toggle').dropdown()
data-toggle="dropdown" still required

Независимо от того, управляете вы выпадающим элементом через JavaScript или атрибутами, атрибут data-toggle="dropdown" всегда необходим в элементе, запускающем выпадающий элемент.

Параметры

Передавайте параметры через JavaScript или атрибуты. Если используются атрибуты, добавляйте название параметра к data- как в data-offset="".

Название Тип По умолч. Описание
offset number | string | function 0

Смещение раскрывающегося списка относительно его цели.

Когда функция используется для определения смещения, она вызывается с объектом, содержащим данные смещения в качестве первого аргумента. Функция должна возвращать объект с такой же структурой. Узел DOM запускающего элемента передается в качестве второго аргумента.

Смещение выпадающего элемента относительно его триггера. См. отступы Popper.js

flip boolean true Позволяет выпадающему элементу перевернуться, если произошло перекрытие другого элемента. Больше информации: flip docs.
boundary string | element 'scrollParent' Граница ограничения переполнения выпадающего меню. Принимает значения 'viewport', 'window', 'scrollParent' или ссылку HTMLElement (только для JavaScript). Для получения дополнительной информации обратитесь к документации preventOverflow от Popper.js.
reference string | element 'toggle' Справочный элемент выпадающего меню. Принимает значения 'toggle', 'parent', или ссылка на HTMLElement. Для получения дополнительной информации обратитесь к Popper.js's referenceObject docs.
display string dynamic | static По умолчанию мы используем Popper.js для динамического позиционирования. Для отключения используйте static.
popperConfig null | object null Чтобы изменить конфигурацию Popper.js по умолчанию в Bootstrap, смотрите Конфигурацию Popper.js.

Обратите внимание, что если для boundary установлено значение, отличное от 'scrollParent', позиция position: static применяется к контейнеру .dropdown.

Методы

Метод Описание
$().dropdown('toggle') Задействует поведение toggle в выпадающем меню данного навбара или при навигации «TAB»ом.
$().dropdown('show') Показывает выпадающее меню данной навигационной панели или вкладки.
$().dropdown('hide') Скрывает выпадающее меню данной навигационной панели или вкладки.
$().dropdown('update') Обновляет позицию выпадания элемента.
$().dropdown('dispose') Уничтожает выпадающий элемент.

События

Все события выпадающих элементов наступают в родительском элементе класса .dropdown-menu и несут свойство relatedTarget, значение которого равно элементу якоря (ссылка, т.е. <a>), запускающего функциональность toggle.

Событие Описание
show.bs.dropdown Это событие наступает немедленно по вызову экземпляра метода show.
shown.bs.dropdown Это событие наступает, когда выпадающий элемент стал видимым юзеру (будет ждать завершения CSS-переходов).
hide.bs.dropdown Это событие наступает немедленно по вызову экземпляра метода hide.
hidden.bs.dropdown Это событие наступает, когда выпадающий элемент стал невидимым юзеру (будет ждать завершения CSS-переходов).
$('#myDropdown').on('show.bs.dropdown', function () {
  // do something…
})

Меню сайта: разновидности и решения

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

Юзабилити - штука интересная и полезная. Хорошо спроектированный интерфейс помогает пользователю без труда найти искомую информацию. Меню сайта создается на основе древовидной структуры, созданной на этапе этапе аналитики, имеет множество разновидностей и сфер применения. Говорить здесь только о меню не совсем корректно, расширим область до термина "навигационная панель".

Общие требования к навигационному меню сайта

  • Просто и понятно, логично. Меню призвано помогать посетителю в поиске нужной информации, не наоборот.
  • Кратко. Число пунктов для классического верхнего меню - не более пяти. Пункты меню должны состоять из коротких одиночных слов, наиболее точно отражающих суть раздела, на который ссылаются.
  • Размер и заметность. Меню должно занимать минимально необходимую площадь, быть хорошо различимым, но не отвлекать от содержимого.
  • Меню должно полностью соответствовать установленной структуре сайта.

Разновидности меню сайтов

Установленного законом и наукой списка не существует, поэтому приведем свой.

По степени важности навигационные меню делятся на основные и второстепенные. Первые ведут на основные разделы сайта и доступны на всех страницах. Вторые — дополняют внутренние разделы. Например, списки подкатегорий в интернет-магазинах.

По техническим аспектам меню делятся на:

  • Простое статическое меню вверху страницы. Может прокручиваться или фиксироваться при прокрутке, меняя прозрачность, цвет и т.д.
  • Выпадающее многоуровневое меню. Дочерние пункты открываются при наведении или клике.
  • Боковое меню или панель (aside). Может быть основным и дополняющим, с фиксацией при прокрутке или без таковой.
  • Меню-гармошка (аккордеон). Нередко дополняет функционал боковых панелей там, где требуется вместить большой список дочерних элементов на относительно небольшой площади.
  • Меню-бутерброд, он же «гамбургер». По клику открывается модальное окно со списком пунктов. Применяется в случае, когда пунктов меню много, а их структура должна быть оформлена в особом порядке. Любимая тема банков.
  • Вкладки (табы). Чаще используется в качестве дополняющего меню, устанавливается в контенте или специальных панелях.
  • Offcanvas-меню — выкатная боковая панель. Незаменима в мобильных версиях сайтов.
  • Комбинированное меню. Экзотическое решение, в котором перемешиваются 2 и более видов навигационных панелей.

Пройдемся по списку более подробно.

Простое статическое меню

Классическая навигация, породившая все остальное. Подходит для большинства сайтов-визиток и лендингов, так как число пунктов не превышает 5 шт. Иногда может использоваться в более крупных проектах вместе с дополняющим.

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

Пример статического меню

Выпадающее меню

Подходит подавляющему количеству сайтов. Выпадающее решение способно вместить второй, третий и более уровни меню. Дочерние пункты могут быть и длинными, и короткими. Выпадающее меню может быть реализовано горизонтально или в вертикальном исполнении. Выпадающее меню способно вместить форму входа, контакты, текст и картинки. Вместительность выпадающего меню позволяет использовать его повсеместно: сайты визитки, порталы, магазины.

Пример выпадающего меню

Боковое меню или панель (aside)

Применяется для удобства пользователей. Раскрывает дополнительные разделы, которые не требуется отображать в основной навигационной панели, чтобы не сталкиваться с избыточным числом пунктов и путаницей. Например, в разделе "Документы" боковая панель будет выводить список рубрик и прямые ссылки на файлы. Область применения безгранична: подойдет для визиток, лендингов, больших порталов, онлайн-кинотеатров и т.д.

пример боковой панели

Меню-гармошка (аккордеон)

Не совсем музыкальный инструмент, но похоже. Имеет бесчисленное количество реализаций. Может быть использовано непосредственно в странице с контентом, либо в боковой панели, offcanvas-панели или статичном вертикальном меню. Благодаря гибкости и способности к трансформациям, может быть использовано в проекте любой сложности и масштаба. Главная фишка состоит в экономии места: по умолчанию дочерние пункты скрыты.

пример меню-гармошки

Меню-гамбургер

Гамбургером называют не собственно меню, а кнопку, которая его вызывает. Вызывать можно что угодно: модальное окно, offcanvas, выпадающие блоки и т.д. Благодаря мобильным устройствам, этот тип меню получил широкое распространение в WEB. На данный момент считается универсальным решением, решающим проблемы, связанные с большим количеством пунктов, длиной текста и необходимостью размещения дополнительной информации. Гамбургер открывает большие возможности для дизайнеров и проектировщиков, имеет бесчисленные варианты реализации. Экономит место, позволяя впихнуть невпихуемое разместить больше элементов на фиксированной площади: поиск, контакты, форма обратной связи, логотип.

Комбинированное меню-бутерброд используется на нашем сайте. Еще пример — Меню с большим числом пунктов

Вкладки (табы)

Дабы у посетителя сайта не отвалились пальцы при скроллинге, применяются различные методики оптимизации. Табы — одна из них. С помощью табов можно отойти от длинных портянок текста на странице и структурировать содержимое более компактно, наглядно и понятно. Для коротких заголовков используется горизонтальное исполнение, для остальных — вертикальное. С помощью табов возможно показать несколько страниц на одной, не используя переходов и перезагрузок.

пример вкладок

Offcanvas-меню

Это меню призвано улучшить читаемость навигации и других элементов на мобильных устройствах. Большое распространение offcanvas получил в эпоху адаптивных сайтов. Конечно, мобильниками не ограничивается, и его применение стало повсеместным в качестве дополнительного и основного меню.

пример offcanvas меню

Какой бы выбор не был сделан, следует учитывать главное: удобство пользования и применимость.

Заказать сайт

раскрывающихся списков · Bootstrap

Переключайте контекстные наложения для отображения списков ссылок и многого другого с помощью плагина раскрывающегося списка Bootstrap.

Обзор

Выпадающие списки - это переключаемые контекстные наложения для отображения списков ссылок и многого другого. Они сделаны интерактивными с помощью встроенного плагина JavaScript для выпадающего меню Bootstrap. Они переключаются нажатием, а не наведением курсора; это намеренное дизайнерское решение.

Выпадающие списки построены на сторонней библиотеке Popper.js, который обеспечивает динамическое позиционирование и обнаружение области просмотра. Обязательно включите popper.min.js перед загрузочным JavaScript или используйте bootstrap.bundle.min.js / bootstrap.bundle.js , который содержит Popper.js. Popper.js не используется для размещения раскрывающихся списков на панели навигации, поскольку динамическое позиционирование не требуется.

Если вы создаете наш JavaScript из исходного кода, для него требуется util.js .

Доступность

Стандарт WAI ARIA определяет фактический виджет role = "menu" , но он специфичен для меню, подобного приложению, которое запускает действия или функции. ARIA Меню может содержать только пункты меню, пункты меню флажков, пункты меню радиокнопок, группы радиокнопок и подменю.

С другой стороны, выпадающие списки

Bootstrap разработаны так, чтобы быть общими и применимыми к различным ситуациям и структурам разметки. Например, можно создавать раскрывающиеся списки, содержащие дополнительные входные данные и элементы управления формами, такие как поля поиска или формы входа в систему. По этой причине Bootstrap не ожидает (и не добавляет автоматически) ни один из атрибутов role и aria- , необходимых для истинных меню ARIA .Авторы должны сами включить эти более конкретные атрибуты.

Однако Bootstrap добавляет встроенную поддержку для большинства стандартных взаимодействий с меню клавиатуры, таких как возможность перемещаться по отдельным элементам .dropdown-item с помощью клавиш курсора и закрывать меню с помощью клавиши ESC .

Примеры

Оберните переключатель раскрывающегося списка (ваша кнопка или ссылка) и раскрывающееся меню внутри .dropdown или другого элемента, который объявляет position: relative; .Выпадающие списки можно запускать из элементов или

И с элементами:

    

Самое приятное то, что вы можете сделать это и с любым вариантом кнопок:

  
  

Кнопка разделения

Аналогичным образом создайте раскрывающиеся списки с разделенными кнопками с практически такой же разметкой, что и раскрывающиеся списки с одной кнопкой, но с добавлением .dropdown-toggle-split для правильного интервала вокруг выпадающего курсора.

Мы используем этот дополнительный класс, чтобы уменьшить горизонтальный отступ по обе стороны от каретки на 25% и удалить margin-left , который добавляется для обычных раскрывающихся списков кнопок. Эти дополнительные изменения удерживают курсор в центре разделенной кнопки и обеспечивают область нажатия более подходящего размера рядом с основной кнопкой.

Вторичный Переключить раскрывающийся список
  

Калибровка

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

  
...
...
...
...

Проезд

Выпадение

Запуск раскрывающихся меню над элементами путем добавления .dropup к родительскому элементу.

Разделить выпадение Переключить раскрывающийся список
  

Dropright

Выпадающее меню триггера справа от элементов путем добавления .dropright родительскому элементу.

Разделить вертикальное положение Переключить Dropright
  

Капля

Триггер в раскрывающемся меню слева от элементов путем добавления .dropleft родительскому элементу.

  

Раньше содержимое выпадающего меню содержало ссылок, но в версии 4 это уже не так.Теперь вы можете дополнительно использовать

Вы также можете создавать неинтерактивные раскрывающиеся элементы с помощью .выпадающий текст . Не стесняйтесь изменять стиль с помощью пользовательских CSS или текстовых утилит.

    

Активно

Добавьте .active к элементам в раскрывающемся списке, чтобы сделать их активными .

    

Отключено

Добавьте .Отключено для элементов в раскрывающемся списке до , пометить их как отключенные .

    

По умолчанию раскрывающееся меню автоматически располагается на 100% сверху и слева от своего родителя. Добавьте .dropdown-menu-right к .dropdown-menu , чтобы выровнять раскрывающееся меню по правому краю.

Внимание! Выпадающие списки размещаются благодаря Popper.js (кроме случаев, когда они содержатся в навигационной панели).

  

Адаптивное выравнивание

Если вы хотите использовать адаптивное выравнивание, отключите динамическое позиционирование, добавив атрибут data-display = "static" и используйте классы адаптивных вариантов.

Чтобы выровнять вправо раскрывающееся меню с заданной точкой останова или больше, добавьте .dropdown-menu {-sm | -md | -lg | -xl} -right .

По левому краю, но по правому краю на большом экране
  

Чтобы выровнять слева раскрывающегося меню с заданной точкой останова или больше, добавьте .dropdown-menu-right и . dropdown-menu {-sm | -md | -lg | -xl} -left .

По правому краю, но по левому краю на большом экране
  

Обратите внимание, что вам не нужно добавлять атрибут data-display = "static" к раскрывающимся кнопкам на панели навигации, начиная с Popper.js не используется в навигационных панелях.

Добавьте заголовок для обозначения разделов действий в любом раскрывающемся меню.

  
Раскрывающийся заголовок
Действие Другое действие

Разделители

Отдельные группы связанных пунктов меню с разделителем.

    

Текст

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

  

Пример текста, который свободно перемещается в раскрывающемся меню.

И это еще один пример текста.

Формы

Поместите форму в раскрывающееся меню или превратите ее в раскрывающееся меню и используйте утилиты полей или заполнения, чтобы дать ей необходимое отрицательное пространство.

  
<форма>
Впервые здесь? Зарегистрироваться Забыли пароль?
  <форма>
  

Параметры раскрывающегося списка

Используйте смещение данных или ссылку на данные , чтобы изменить расположение раскрывающегося списка.

    

Использование

С помощью атрибутов данных или JavaScript плагин раскрывающегося списка переключает скрытый контент (раскрывающиеся меню) путем переключения .показать класс в родительском элементе списка. Атрибут data-toggle = "dropdown" используется для закрытия раскрывающихся меню на уровне приложения, поэтому рекомендуется всегда использовать его.

На устройствах с сенсорным экраном открытие раскрывающегося списка добавляет пустые ( $ .noop ) обработчики mouseover к непосредственным потомкам элемента . Этот, по общему признанию, уродливый хакер необходим для обхода причуды в делегировании событий iOS, которая в противном случае помешала бы нажатию где-либо за пределами раскрывающегося списка запускать код, закрывающий раскрывающийся список.После закрытия раскрывающегося списка эти дополнительные пустые обработчики mouseover удаляются.

Через атрибуты данных

Добавьте data-toggle = "dropdown" к ссылке или кнопке, чтобы переключить раскрывающийся список.

  
...

Через JavaScript

Вызов раскрывающихся списков с помощью JavaScript:

  $ ('.dropdown-toggle '). dropdown ()  
data-toggle = "dropdown" все еще требуется

Независимо от того, вызываете ли вы раскрывающийся список через JavaScript или вместо этого используете data-api, data-toggle = "dropdown" всегда должен присутствовать в элементе триггера раскрывающегося списка.

Опции

Параметры могут передаваться через атрибуты данных или JavaScript. Для атрибутов данных добавьте имя параметра к data- , как в data-offset = "" .

Номер
Имя Тип По умолчанию Описание
смещение | строка | функция 0

Смещение раскрывающегося списка относительно цели.

Когда функция используется для определения смещения, она вызывается с объектом, содержащим данные смещения в качестве первого аргумента. Функция должна возвращать объект с такой же структурой.Узел DOM запускающего элемента передается в качестве второго аргумента.

Для получения дополнительной информации обратитесь к документации по смещению Popper.js.

флип логический правда Разрешить разворачивание раскрывающегося списка в случае перекрытия ссылочного элемента. Для получения дополнительной информации обратитесь к документации Popper.js.
граница строка | элемент 'scrollParent' Граница ограничения переполнения раскрывающегося меню.Принимает значения 'viewport' , 'window' , 'scrollParent' или ссылку HTMLElement (только JavaScript). Для получения дополнительной информации обратитесь к документации Popper.js preventOverflow.
ссылка строка | элемент 'переключатель' Ссылочный элемент раскрывающегося меню. Принимает значения 'toggle' , 'parent' или ссылку HTMLElement. Для получения дополнительной информации обратитесь к Попперу.js referenceObject docs.
дисплей строка 'динамический' По умолчанию мы используем Popper.js для динамического позиционирования. Отключите это с помощью static .

Обратите внимание, когда для границы задано любое значение, отличное от 'scrollParent' , стиль position: static применяется к контейнеру .dropdown .

Методы

Метод Описание
$ ().раскрывающийся список ('переключение') Переключает раскрывающееся меню данной панели навигации или навигации с вкладками.
$ (). Раскрывающийся список ('показать') Показывает раскрывающееся меню данной панели навигации или навигации с вкладками.
$ (). Раскрывающийся список ('скрыть') Скрывает раскрывающееся меню данной панели навигации или навигации с вкладками.
$ (). Раскрывающийся список («обновление») Обновляет позицию раскрывающегося списка элемента.
$ (). Раскрывающийся список ('удалить') Уничтожает раскрывающийся список элемента.

События

Все события dropdown запускаются в родительском элементе .dropdown-menu и имеют свойство relatedTarget , значение которого является переключаемым элементом привязки. События hide.bs.dropdown и hidden.bs.dropdown имеют свойство clickEvent (только при исходном типе события click ), которое содержит объект события для события щелчка.

Событие Описание
показать.bs.dropdown Это событие запускается немедленно при вызове метода экземпляра шоу.
показан. Раскрывающийся вниз Это событие вызывается, когда раскрывающийся список становится видимым для пользователя (ожидает завершения переходов CSS).
hide.bs.dropdown Это событие запускается сразу после вызова метода экземпляра hide.
hidden.bs.dropdown Это событие вызывается, когда раскрывающийся список перестает быть скрытым от пользователя (будет ожидать завершения переходов CSS).
  $ ('# myDropdown'). On ('show.bs.dropdown', function () {
  // сделай что-нибудь...
})  

Примеры потрясающих раскрывающихся меню: Интернет и мобильные устройства

Хотите знать, как выглядят великолепные раскрывающиеся меню? Ознакомьтесь с этим списком отличных раскрывающихся примеров из Интернета и приготовьтесь почувствовать вдохновение!

Выпадающие меню бывают разных форм и размеров.Вы можете найти их в больших ярких меню навигации или в небольших и простых по форме. Итак, какие общие черты характерны для хороших примеров выпадающих меню?

Начните создавать прототипы раскрывающихся меню веб-приложений и мобильных приложений с помощью Justinmind

Загрузить бесплатно

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

Итак, лучше иметь под рукой любимый инструмент для создания прототипов - на всякий случай, когда придет вдохновение!

Примеры раскрывающихся меню в Интернете для вдохновения

Веб-сайт Justinmind - это краткие, но содержательные взаимодействия, простая навигация и красивый цветовой контраст. Горизонтальная панель навигации использует раскрывающиеся меню, чтобы систематизировать ссылки по категориям и направлять пользователей туда, куда им нужно.

Эти раскрывающиеся меню являются хорошими примерами, потому что они короткие и приятные, но выполняют свою работу. Никакой прокрутки, никаких длинных списков на выбор. Обратите внимание на меняющиеся состояния ссылок, предоставляя весь возможный контекст и обеспечивая удобство использования для пользователей. Кстати, мы создали весь наш веб-сайт с помощью нашего инструмента для создания прототипов веб-сайтов!

Facebook ежемесячно посещают около 2,6 миллиарда активных пользователей. Огромный успех гиганта социальных сетей является результатом множества различных факторов, одним из которых является дизайн пользовательского интерфейса.Facebook очень умно использует раскрывающиеся меню, используя их для всего, от помощи пользователям в решении проблем до вывода уведомлений.

Medium - это центр дизайнеров и креативщиков, которые делятся историями и информацией. Их веб-сайт можно считать хорошим примером использования раскрывающихся меню, чтобы направить пользователей в самые важные уголки их учетной записи. В интерфейсе используются простые серые линии для разделения ссылок, группируя их в соответствии с их характером.

The Verge содержит множество технологически ориентированного контента, а их дизайн пользовательского интерфейса ориентирован на навигацию и помогает пользователям исследовать различные темы.Поэтому неудивительно, что их панель навигации отлично использует раскрывающиеся меню.

Верхние категории контента, такие как «Наука» и «Обзоры», отображаются непосредственно на панели навигации, а подкатегории отображаются в развернутых раскрывающихся меню. Он приятен на вид, но при этом хорошо организован и легко обнаруживается.

Apple - мастер дизайна интерфейсов, который мы можем оценить по плавным и минималистичным линиям iOS, но также и на их веб-сайтах. Apple считает каждую кнопку на счету, и нигде это не так очевидно, как в раскрывающемся меню корзины покупок.

Предоставьте Apple сделать что-то вроде раскрывающегося списка корзины и превратить его в источник полезных ссылок для пользователей. Людям предлагаются ссылки на их любимые элементы, настройки учетной записи и так далее. Лучше всего? Даже с дополнительными ссылками общее впечатление просторное и визуально приятное.

Photoshop является неотъемлемой частью набора инструментов любого дизайнера UX. Photoshop, как и многие другие программы, должен предоставлять пользователям большое количество кнопок, чтобы их было удобно и легко найти.Это делается с помощью раскрывающихся списков, которые раскрываются, чтобы показать выбор элементов управления действиями.

Это правда, что обучение работе с такими программами, как Photoshop, велико, но, учитывая огромное количество кнопок, которое нужно дизайнерам, дизайн пользовательского интерфейса действительно отлично справляется со своей задачей. Дизайнеры могут изучить различные выпадающие меню, которые хорошо организованы и легко запоминаются со временем.

Европейская авиакомпания Ryanair вызывает у большинства людей смешанные чувства. Однако их дизайн веб-сайта является отличным примером раскрывающегося меню.При проектировании форм может быть сложно найти правильный баланс между раскрывающимися списками и предоставлением пользователям возможности просто вводить или выбирать то, что им нужно. Ryanair правильно установил этот баланс, дав пользователям возможность выбрать место своего полета из списка вариантов в раскрывающемся списке.

Дизайн пользовательского интерфейса выглядит чистым, и, поскольку это веб-формат, пользователи могут просто выбрать страну, а не прокручивать варианты. Благодаря продуманному дизайну пользователи получают возможность работать быстрее и с гораздо меньшими усилиями.

Дизайн пользовательского интерфейса

Puma основан на сильном контрасте между черным и белым, быстром взаимодействии и красивой графике. Основная навигация осуществляется через мегаменю, что делает его отличным примером раскрывающегося списка.

Все меню расширяется до большого размера, предлагая покупателям все категории, которые необходимо изучить и получить желаемые товары. Нам нравится информационная архитектура в категории и уровень обратной связи во всем раскрывающемся списке. Изменяющееся состояние ссылок обеспечивает удобство использования, отмечая все нужные флажки.

Airbnb - отличный пример, когда речь идет о многих аспектах дизайна UI и UX. Веб-сайт Airbnb, от безупречной индивидуальности бренда до тонких взаимодействий, хорошо спланирован и тщательно продуман.

Хороший пример - умное использование раскрывающихся списков. Airbnb использует раскрывающиеся списки, чтобы скрыть счетчики гостей и календарь, которые нужны пользователям, но также занимают много места. Благодаря двум расположенным в раскрывающемся списке, он обеспечивает понятный интерфейс для пользователей, не ставя под угрозу удобство использования.

Dribbble - это целое сообщество дизайнеров и творческих профессионалов, а это означает, что планка UI и UX-дизайна Dribbble очень высока. И сразу же панель навигации соответствует поставленной задаче. Выпадающий список, созданный с помощью мегаменю и поддерживаемый безупречной визуальной иерархией, является прекрасным примером.

Нам нравится, что, хотя раскрывающийся список предназначен для навигации, он по-прежнему предоставляет красивые визуальные эффекты, предлагая иллюстрации для большинства вариантов, а также краткое описание пункта назначения.Он умный, дает пользователю возможность дышать и предлагает центральную дорогу к большей части платформы.

Примеры раскрывающихся меню мобильных приложений

В то время как некоторые ОС имеют свои собственные раскрывающиеся списки, другие действительно предоставляют дизайнерам всевозможную свободу в ограниченном пространстве мобильного экрана. И именно потому, что получить раскрывающиеся меню в приложениях так сложно, мы все должны ценить тех, кто понимает это правильно. Давайте посмотрим на некоторых дизайнеров, которым удалось попасть в точку с помощью следующих примеров раскрывающегося меню.

Алекс Мюнч разработал этот замечательный пример раскрывающегося списка, ориентированного на помощь и обратную связь для Doist. Общий интерфейс меню чистый, с плоскими значками, наполненными индивидуальностью, и мягкой цветовой палитрой.

Джина Чи разработала современный, привлекательный и уникальный выпадающий список. Он идет в прямо противоположном направлении других раскрывающихся примеров в этом списке, отказываясь от мягких цветов и сдержанных палитр. Это раскрывающееся меню является звездой шоу и предлагает впечатления, которые пользователи вряд ли пропустят или забудут.

Этот пример выпадающего меню от Райли Джонса минималистичен и предлагает пользователям винтажную атмосферу. Цветовая палитра настолько проста, насколько это возможно, а контраст между серым и черным является основной динамикой. Нам нравится, что у самого раскрывающегося списка есть тень, добавляющая глубины интерфейсу. Отдельно стоит отметить, что пользователи, вероятно, действительно оценят эту микрокопию в призыве к действию!

Мадалин Ли создала раскрывающееся меню для мобильных устройств, которое занимает весь экран, но не слишком много. Тот факт, что весь экран занят меню, дает ему много пустого места, давая пользователю возможность немного отдохнуть и сосредоточиться на перечисленных параметрах.

От сильного контраста между черным фоном и белым шрифтом до использования цвета для обозначения выбранной опции - это пример выпадающего меню, который учитывает удобство использования всего этого. И нам за это нравится дизайн!

Purple Bunny представляет нам пример выпадающего меню, в котором все о визуальной иерархии и мягком использовании цвета. Нам нравится, что в этом раскрывающемся меню пользователь по-прежнему может видеть основную навигацию и некоторые важные кнопки, а также перечисленные параметры в меню.

Использование значков, кнопок навигации и обычных кнопок может сбивать с толку, но Purple Bunny получил визуальную иерархию, которая упрощает группировку ссылок с первого взгляда. Это нелегко сделать, поэтому это прекрасный пример раскрывающегося меню!

6. Выпадающее меню с анимацией

Ники Смитс создал смелый и новаторский пример выпадающего меню. Нам нравится, что экран яркий и красочный, но при этом позволяет пользователю сосредоточиться на раскрывающемся меню с помощью кнопки «Еще».Расположение раскрывающегося списка и крупный шрифт делают его привлекательным и простым в использовании.

Нам также нравится, что, хотя раскрывающееся меню велико, пользователи все еще могут видеть исходную кнопку и экран, отмечая очень хорошее удобство использования. Не говоря уже о том, что микровзаимодействие в этом раскрывающемся примере приятное и по существу - еще один замечательный флажок установлен.

7. Взаимодействие с мобильным меню

Клаудио Вальехо создал этот красивый вариант выпадающего меню для мобильных экранов.Этот пример состоит из вертикального раскрывающегося списка, в котором отображается вся навигационная сеть ссылок. Некоторые из вещей, которые нам нравятся в этом примере раскрывающегося меню, включают использование мягких цветов, краткие, но значимые взаимодействия и анимацию вместе с красивой структурой перечисленных опций.

Общее меню, которое раскрывается в раскрывающемся списке, хорошо организовано, с раскрывающимися списками, используемыми в самом меню, с использованием знака «плюс». В результате получается меню, которое предлагает множество различных опций, но передает хорошую иерархию опций, что приводит к меню, которое пользователи могут легко понять.

Премьера

Disney + попала в заголовки газет во всем мире. Стриминговый сервис нацелен на конкуренцию с такими гигантами, как Netflix и Amazon Prime Video, в результате чего в их дизайн пользовательского интерфейса было вложено много усилий. Одна из вещей, которые наша команда полюбила в мобильном интерфейсе, - это раскрывающееся меню.

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

Vimeo правильно понял выпадающий список. Раскрывающийся список расширяется, образуя модальное окно, которое не занимает весь экран. В модальном окне остается достаточно места, чтобы пользователи могли видеть исходный экран, напоминая о функциях раскрывающегося списка.

Метка в верхней части модального окна служит четким указанием того, что делает раскрывающийся список и к чему он относится. Перечисленных опций не так много, оставляя достаточно места для значков и пустого места, а также давая возможность глазам отдыхать.Отличная работа!

Adobe Lightroom - еще один отличный пример программного обеспечения, которое включает в себя множество различных кнопок действий. Мобильное приложение включает в себя отличный пример раскрывающегося меню, которое поднимается из нижней части экрана, оставляя достаточно места для пользователей, чтобы увидеть исходный экран за расширенным меню.

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

Примеры раскрывающихся меню в заключение

Выпадающие списки могут иметь разные формы и формы. Хотя многие дизайнеры считают, что выпадающие списки могут быть довольно жестким выбором компонента пользовательского интерфейса, они действительно дают достаточный запас для творчества и инноваций. Дизайнеры могут выбрать, чтобы он оставался классическим и конкретным, или выбирал яркие и визуально ошеломляющие меню.

В этом списке мы надеемся, что вы почувствуете вдохновение раздвинуть границы дизайна пользовательского интерфейса и создать поистине незабываемые впечатления для пользователей.Пора приступить к созданию прототипа!

примеров и передовых методов - Smashing Magazine

Об авторе

Мэтт Кронин - заядлый графический дизайнер, веб-дизайнер / разработчик, программист какао, фотограф, цифровой художник и т.п. Еще ему нравится писать, и он ... Больше о Мэтт ↬

Как правило, большинство веб-разработчиков, особенно энтузиасты юзабилити, говорят, что использование раскрывающихся меню - плохая практика, поскольку они сбивают с толку, раздражают и часто не работают.Однако с точки зрения дизайна раскрывающиеся меню - отличная функция, поскольку они помогают очистить загруженный макет. При правильной структуре раскрывающиеся меню могут быть отличным инструментом навигации, но при этом оставаться удобной и привлекательной особенностью дизайна.

Да, верно: раскрывающиеся меню навигации могут быть удобными для пользователя . Буквально вчера Джейкоб Нильсен представил результаты своего недавнего исследования раскрывающихся меню, в ходе которого он обнаружил, что большие двумерные раскрывающиеся панели, которые группируют параметры навигации, помогают пользователям избежать прокрутки и могут точно объяснить выбор пользователя с эффективным использованием типографика, значки и всплывающие подсказки.

Эти панели появляются временно и исчезают сами по себе, когда пользователи перемещают указатель на другой параметр верхнего уровня или на «обычную» часть экрана.


Огромная вертикальная выпадающая панель от Foodnetwork; обратите внимание на кнопку закрытия («x» в правом верхнем углу).

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

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

Организация страниц в разделе

Чаще всего раскрывающиеся меню используются для объединения всех страниц определенной категории в один организованный элемент. По сути, это суб-навигация. Взгляните на дизайн ниже. Выпадающий элемент содержит все различные категории для определенного раздела веб-сайта.

Организация категорий в блоге

Вы увидите, что многие блоги используют раскрывающееся меню для организации категорий и тегов. Почему? Блоги управляются большим объемом информации, поэтому макет должен быть как можно более чистым, чтобы вместить этот контент. Выпадающее меню в конечном итоге помогает объединить ссылки, такие как категории, из элементов макета, таких как боковая панель.

Показать продукты на веб-сайте электронной коммерции

Вы увидите, что многие веб-сайты электронной коммерции используют раскрывающиеся меню для отображения продуктов или категорий продуктов.Выпадающее меню - это удобная функция, в которой все потребители могут легко понять, поэтому это идеальный способ упорядочить продукты. Веб-сайт Best Buy, показанный ниже, делает именно это.

Дисплейные модули

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

Best Practices

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

Избегайте раскрывающегося списка с более чем двумя уровнями

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

Указанный ниже веб-сайт совершает эту ошибку. Меню очень сложно использовать, потому что если вы даже немного потеряете фокус меню с помощью указателя мыши, вам придется начинать сверху. Обратите внимание на всплывающую подсказку, которая также мешает навигации.

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

С другой стороны, многие будут утверждать, что интерактивное меню лучше, потому что оно намного удобнее. Причина? Из-за способа построения всплывающего меню пользователь должен постоянно держать указатель над меню. Если пользователь теряет фокус всплывающего меню, оно закрывается. Поэтому лучше использовать раскрывающееся меню, которое активируется нажатием кнопки, а затем деактивируется нажатием кнопки еще раз.

CSS-Tricks содержит руководство, показывающее, как создать макет, похожий на макет Digg.Это идеальное раскрывающееся меню с функцией активации / деактивации щелчком, так что вам, безусловно, стоит взглянуть на него.

Кроме того, в Google есть раскрывающееся меню, в котором используется трюк включения / выключения.

Задержка деактивации наведения

Избегание наведения структуры и большого количества уровней в раскрывающемся списке может быть слишком большим ограничением для навигации, которую вы пытаетесь создать. Однако есть решение, которое может повысить удобство использования всплывающего и многоуровневого меню.В большинстве меню раскрывающийся список исчезает сразу после того, как пользователь отводит указатель мыши от меню. Решение - отсрочить его исчезновение. Или используйте функцию щелчка, которая требует, чтобы пользователи щелкали за пределами области меню, чтобы закрыть раскрывающийся список, аналогично тому, как работает лайтбокс.

Возьмем, к примеру, Dell. Он использует многоуровневое раскрывающееся меню, но его все же можно использовать. Это единственное исключение из использования многоуровневых раскрывающихся меню.

Кроме того, меню на сайте Porsche имеет несколько уровней.Однако в меню очень широкий диапазон фокусировки. Это означает, что вам нужно переместить указатель на определенное расстояние от меню, чтобы закрыть его.

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

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

Бесшовные переходы

Раскрывающееся меню должно отображаться плавно и без прерывания. Меню должно загрузиться немедленно. Многие веб-сайты делают ошибку, делая меню настолько «тяжелым», что его загрузка занимает больше времени при наведении курсора.

Эффекты перехода - еще одна деталь, которая может выглядеть действительно круто. Вместо того, чтобы меню просто появилось, попробуйте добавить или постепенно исчезнуть. Просто убедитесь, что переход был быстрым и не мешающим.

Вы заметите, что Microsoft не очень хорошо справляется с созданием бесшовного меню. Внимательно посмотрите на изображение ниже. Вы заметите, что контуры соседних меню все еще видны, когда главное меню загружается. Когда вы переходите от кнопки к кнопке в навигации, выпадающие меню имеют небольшую задержку, что выглядит плохо. Конечно, это происходит не во всех браузерах, но и не должно происходить ни в одном.

Удалить всплывающие подсказки

Конечно, при разработке раскрывающихся меню всегда есть небольшие детали, влияющие на удобство использования.Одна важная практика, которую вы можете упустить, - это наличие всплывающих подсказок или их отсутствие. Вы всегда должны удалять всплывающие подсказки с кнопок с раскрывающимися меню. Причина? Всплывающие подсказки просто мешают, а иногда даже блокируют первый элемент списка в раскрывающемся меню.

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

Приемы стилизации

Фоны из содержимого тоже могут быть проблемой.Фон должен быть тонким, иначе он испортит контент. Вот несколько способов оживить фон контента, не переусердствуя.

Используйте чистый список

Важен не только стиль элемента, но и стиль содержимого. Чистая типографика и читаемый список важны. Используйте разумный интервал между элементами в списке и добавьте границу над и под элементами списка.

Пример ниже от Audi показывает очень хорошо организованный и читаемый список.Элементы списка разделены, и есть даже значки элементов списка.

С другой стороны, на сайте The Washington Post список в раскрывающемся меню очень скудный. Между элементами списка недостаточно интервалов, поэтому меню очень загромождено и его сложно использовать.

Эффекты наведения на элементы списка

Все кнопки нуждаются в каком-либо эффекте наведения, чтобы их можно было использовать. В раскрывающихся списках меню примените легкие эффекты наведения, например, просто изменение цвета текста или фона. Веб-сайт Белого дома использует только изменение фона для элементов списка, но это все равно помогает пользователю.

Полупрозрачный фон

Это не будет работать для всех дизайнов, но вам следует рассмотреть возможность использования полупрозрачного фона для меню. Веб-сайт, показанный ниже, имеет прозрачность, поэтому пользователь все еще может видеть фон изображения. Ключ к полупрозрачным элементам - поддерживать сильный и читаемый контраст.

Повсюду вы услышите, что последовательность в стиле является обязательной, и это, безусловно, так. Чтобы навигация и раскрывающееся меню работали вместе как одно целое, стиль должен быть похожим.Используйте те же шрифты и аналогичный фон.

В приведенном ниже примере раскрывающееся меню выглядит так, как должно.

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

Navigant Consulting

Это меню плохо оформлено и не работает.

Panasonic

Хотя это меню хорошо оформлено, его трудно использовать из-за плохого эффекта наведения.

Toshiba

Меню Toshiba слишком маленькое и не соответствует хорошим стилям.

LG

Как и в меню Microsoft выше, у этого есть небольшая задержка, что затрудняет использование.

Chrysler

На странице Chrysler используется раскрывающееся меню с очень мелким текстом, что затрудняет чтение.

Sun

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

Creative Labs

Меню ниже загромождено и не имеет отложенного скрытия или аналогичной техники, поэтому его не очень удобно.

HP

Еще одно всплывающее меню, в котором отсутствуют полезные функции.

Alienware

Черное меню на черном фоне затрудняет использование этого раскрывающегося списка.

Здесь много раскрывающихся меню с удобными функциями и функциями стилизации.

Sony

Хорошо продуманное всплывающее меню с хорошим списком.

ActionEnvelope

Чистая вертикальная раскрывающаяся панель с большим количеством отступов; обратите внимание, как панель выглядит выше других элементов дизайна.Простое и красивое решение.

Helmy Bern

Красиво оформленное меню с плавным переходом.

RedBrick

Это меню аккуратно оформлено и легко читается.

REI

Это раскрывающееся меню очень широкое, поэтому мышь легко удерживать в фокусе.

Philips

Philips имеет большой и удобный раскрывающийся модуль.

Walmart

На сайте Walmart пользователь щелкает область за пределами меню, чтобы закрыть его.

Samsung

Меню Samsung удобно использовать из-за большого размера и стиля.

Epson

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

Mini Cooper

На этом веб-сайте используется раскрывающееся меню с отложенным закрытием.

Шлюз

Вот еще один полезный раскрывающийся элемент.

Asus Global

Красивое меню с отложенным скрытием.

Intel

Очень чистое раскрывающееся меню.

Target

Хорошо организованное меню с отложенным закрытием.

Garmin

Это раскрывающееся меню простое, но функциональное.

Logitech

Раскрывающийся список с очень красивым стилем, который соответствует меню.

Incase

Это меню очень простое, но служит своей цели.

evelMerch

Небольшое, но функциональное раскрывающееся меню с графикой, показывающей пользователям, что кнопка открывает меню.

IBM

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

EA

Очень чистый и хорошо организованный выпадающий элемент.

Дополнительная литература по SmashingMag:

(al, il)

Что такое раскрывающееся меню?

Обновлено: 30.11.2020 компанией Computer Hope

В графическом интерфейсе компьютера раскрывающееся меню. - это меню со списком параметров.Заголовок меню или текущий выбранный элемент в списке отображается всегда. При щелчке по видимому элементу другие элементы из списка «раскрываются» для просмотра, и пользователь может выбрать один из этих вариантов.

Например, у многих программ есть раскрывающееся меню «Файл» в верхнем левом углу экрана. Щелчок по тексту «Файл» создает новое меню с дополнительными параметрами.

Раскрывающиеся меню в HTML

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

В этом примере мы также присвоили значение каждой из этих опций.Эти значения могут быть переданы в любой серверный сценарий для регистрации информации или выполнения действий на основе значений.

Пример вышеуказанного кода

Выберите вариант: Выбор 1, Выбор 2, Выбор 3 Примечание

Ничего не происходит при выборе варианта в раскрывающемся меню выше. Если вы хотите отправить данные с помощью раскрывающегося меню, вы можете использовать нашу форму обслуживания клиентов.

Выпадающие меню в окне программы

Выпадающие меню используются во всех типах программного обеспечения.Например, в операционной системе Windows список возможных тем отображения (показанный ниже) представляет собой раскрывающееся меню.

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

Чтобы выбрать раскрывающееся меню с помощью клавиатуры, нажимайте Tab , пока не будет выбрано раскрывающееся меню. После выбора вы можете использовать клавиши со стрелками вверх и вниз для прокрутки доступных опций. Например, нажмите Tab сейчас, пока не будет выбрано следующее раскрывающееся меню, а затем используйте клавишу со стрелкой вниз для прокрутки списка.Когда вы закончите выбор варианта, нажмите Tab еще раз, чтобы перейти к следующему элементу, или нажмите Enter .

Пример: Выбор 1, выбор 2, выбор 3, последний Кончик

Вы также можете нажать первую букву параметра. Например, в раскрывающемся меню выше «Последний» - последний элемент в раскрывающемся меню. Если вы нажмете клавишу « L » на клавиатуре после выбора раскрывающегося меню, оно немедленно прокрутится до этого параметра. Этот совет полезен для больших раскрывающихся меню с несколькими вариантами (например,g., выбрав штат или страну).

Какую кнопку нужно нажать, чтобы закрыть раскрывающееся меню?

Вы можете нажать клавишу Esc, чтобы закрыть раскрывающееся меню.

Что происходит, когда вы щелкаете элемент в раскрывающемся меню?

При щелчке по элементу в раскрывающемся меню он становится выбранным параметром. Например, если вы заполняете форму, содержащую раскрывающееся меню со списком стран, и выбираете «Соединенные Штаты», это становится вашим выбором. При отправке формы выбранная вами страна будет "США".

Какой значок вы нажимаете, чтобы активировать раскрывающееся меню?

Если в раскрывающемся меню доступен только один вариант (как показано ниже), вы должны щелкнуть значок стрелки вниз рядом с первым вариантом.

Пример: Выбор 1, Выбор 2, Выбор 3 Кончик

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

Должен ли я использовать «раскрывающееся меню» или «раскрывающееся меню» в письменной форме?

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

Поле со списком, Поле со списком, Меню, Управление с помощью меню, Термины операционной системы, Поле со списком

Создание раскрывающегося списка - служба поддержки Office

Ввод данных происходит быстрее и точнее, если вы ограничиваете значения в ячейке вариантами из раскрывающегося списка.

Начните с составления списка допустимых записей на листе и отсортируйте или измените порядок записей, чтобы они отображались в нужном вам порядке. Затем вы можете использовать записи в качестве источника для раскрывающегося списка данных.Если список невелик, вы можете легко обратиться к нему и ввести записи прямо в инструмент проверки данных.

  1. Создайте список допустимых записей для раскрывающегося списка, набранного на листе в одном столбце или строке без пустых ячеек.

  2. Выберите ячейки, в которых нужно ограничить ввод данных.

  3. На вкладке Данные в разделе Инструменты щелкните Проверка данных или Проверить .

    Примечание: Если команда проверки недоступна, возможно, лист защищен или к книге открыт общий доступ. Вы не можете изменить настройки проверки данных, если ваша книга является общей или ваш лист защищен. Дополнительные сведения о защите книги см. В разделе Защита книги.

  4. Щелкните вкладку Параметры , а затем во всплывающем меню Разрешить щелкните Список .

  5. Щелкните поле Источник , а затем на листе выберите список допустимых записей.

    Диалоговое окно сворачивается, чтобы лист было удобнее видеть.

  6. Нажмите RETURN или нажмите Expand кнопку, чтобы восстановить диалоговое окно, а затем нажмите ОК .

    Советы:

    • Вы также можете ввести значения непосредственно в поле Source , разделив их запятыми.

    • Чтобы изменить список допустимых записей, просто измените значения в исходном списке или отредактируйте диапазон в поле Источник .

    • Вы можете указать собственное сообщение об ошибке для ответа на ввод неверных данных. На вкладке Data щелкните Data Validation or Validate , and then click the Error Alert tab.

См. Также

Применить проверку данных к ячейкам

  1. На новом листе введите записи, которые должны появиться в раскрывающемся списке. В идеале у вас будут элементы списка в таблице Excel.

  2. Выберите ячейку на листе, в которой требуется раскрывающийся список.

  3. Перейдите на вкладку Data на ленте, затем щелкните Data Validation .

  4. На вкладке Параметры в поле Разрешить щелкните Список .

  5. Если вы уже создали таблицу с раскрывающимися записями, щелкните поле Источник , а затем щелкните и перетащите ячейки, содержащие эти записи.Однако не включайте ячейку заголовка. Просто включите ячейки, которые должны появиться в раскрывающемся списке. Вы также можете просто ввести список записей в поле Source , разделенный запятой, например:

    Фрукты, овощи, злаки, молочные продукты, закуски

  6. Если люди могут оставлять ячейку пустой, установите флажок Игнорировать пустое поле .

  7. Установите флажок в раскрывающемся списке в ячейке .

  8. Щелкните вкладку Входное сообщение .

    • Если вы хотите, чтобы при щелчке по ячейке появлялось всплывающее сообщение, установите флажок Показать сообщение и введите заголовок и сообщение в поля (до 225 символов).Если вы не хотите, чтобы сообщение появлялось, снимите флажок.

  9. Щелкните вкладку Предупреждение об ошибке .

    • Если вы хотите, чтобы сообщение появлялось, когда кто-то вводит что-то, чего нет в вашем списке, установите флажок Показать предупреждение , выберите вариант в Тип и введите заголовок и сообщение. Если вы не хотите, чтобы сообщение появлялось, снимите флажок.

  10. Нажмите ОК .

После создания раскрывающегося списка убедитесь, что он работает так, как вы хотите. Например, вы можете проверить, измените ли ширину столбца и высоту строки, чтобы отображались все ваши записи. Если вы решите изменить параметры в раскрывающемся списке, см. Раздел Добавление или удаление элементов из раскрывающегося списка.Чтобы удалить раскрывающийся список, см. Удаление раскрывающегося списка.

Как создать раскрывающееся меню в CSS

Что такое выпадающие списки?

Выпадающие меню используются в CSS для скрытия предопределенного списка внутри кнопки.

Примеры:

    

Затем вы должны настроить классы в CSS следующим образом:

 .падать {
  положение: относительное;
  дисплей: встроенный блок;
}

.dropbtn {
  цвет фона: красный;
  отступ: 10 пикселей;
}

.dropdown-content {
  дисплей: нет;
  позиция: абсолютная;
}

.dropdown: hover .dropdown-content {
  дисплей: блок;
}  

Вам нужны отдельные классы div для создания кнопки и еще один div для разделения списка того, что содержит кнопка.

Пример

    
  # myNav1 {
    высота: 0;
    ширина: 50%;
    положение: фиксированное;
    z-индекс: 6;
    верх: 0;
    слева: 0;
    цвет фона: #ffff;
    переполнение: скрыто;
    переход: 0.3с;
    непрозрачность: 0,85;
}

# myNav2 {
    высота: 0;
    ширина: 50%;
    положение: фиксированное;
    z-индекс: 6;
    внизу: 0;
    справа: 0;
    цвет фона: #ffff;
    переполнение: скрыто;
    переход: 0,3 с;
    непрозрачность: 0,85;
}

.overlay-content {
    положение: относительное;
    ширина: 100%;
    выравнивание текста: центр;
    маржа сверху: 30 пикселей;
}

# myNav1-content {
    верх: 12%;
    осталось: 5%;
    дисплей: нет;
}

# myNav2-content {
    верх: 12%;
    справа: 10%;
    дисплей: нет;
}  

Подробнее о раскрывающихся списках CSS:

Как создать раскрывающееся меню в WordPress (за 5 шагов)

Навигация по сайту - ключ к тому, чтобы помочь вашим пользователям добраться туда, куда они хотят.Хорошо продуманное меню может иметь большое значение для улучшения пользовательского опыта (UX) и даже для снижения показателя отказов. Однако плохо созданный может сделать прямо противоположное.

К счастью, WordPress позволяет создавать настраиваемые меню в соответствии с потребностями вашего сайта. Вы даже можете использовать собственные функции, чтобы добавить компактное раскрывающееся меню WordPress, которое экономит место, но при этом обеспечивает четкое направление для ваших посетителей.

В этом посте мы обсудим, почему навигация по веб-сайту важна и как раскрывающиеся меню могут быть особенно полезными.Затем мы расскажем, как создать их в WordPress, и поделимся некоторыми плагинами, которые могут помочь.

Давайте нырнем!

Введение в навигацию и раскрывающиеся меню WordPress

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

Главное меню навигации веб-сайта Kinsta

Наличие хорошо продуманного меню навигации - ключ к увеличению конверсии и снижению показателя отказов.Когда пользователи могут легко найти страницы, на которых находится ваш продукт, форма для подписки по электронной почте или другой конвертирующий контент, вам будет проще убедить их совершить покупку или зарегистрироваться.

Кроме того, если пользователи могут уверенно ориентироваться на вашем сайте, им не придется отказываться от ваших страниц, потому что они оказались в неправильном месте. Помогая им сделать все правильно с первого раза, вы сможете улучшить UX и свести к минимуму разочарование.

В WordPress меню - это неотъемлемая функция. Любой сайт, созданный с помощью платформы, может отображать один или несколько из них.Тем не менее, темы WordPress также играют важную роль, когда дело доходит до стилизации и размещения вашего меню или меню.

По этой причине ваше меню WordPress может принимать самые разные формы. Самым привычным является стандартное меню заголовка:

Пример типичного меню заголовка

Вы также можете часто включать дополнительное меню нижнего колонтитула внизу ваших страниц. Он может отображать то же содержимое, что и ваше главное меню, или предлагать немного другие параметры:

Пример нижнего колонтитула

Другой стиль - это наложение меню, которое пользователи могут открывать и закрывать по своему желанию:

Пример оверлейного меню

В качестве альтернативы вы можете рассмотреть возможность использования меню боковой панели:

Пример меню боковой панели

Или вы можете включить раскрывающееся меню, также иногда называемое «вложенным» меню:

Пример выпадающего меню

Этот тип навигации идеально подходит для многих типов сайтов.Он не будет скрывать ваш контент, как оверлейное меню, но не так навязчив, как большая панель заголовка или меню боковой панели.

Скрывая часть контента до тех пор, пока она не понадобится, вы сэкономите место на экране, но при этом предоставите пользователям простой способ передвижения.

Как создать раскрывающееся меню в WordPress (за 5 шагов)

Если вы решили, что раскрывающееся меню может хорошо подходить для вашего сайта WordPress, настроить его довольно просто. Используя встроенные функции меню, доступные в WordPress, вы можете создать настраиваемую систему навигации, которая соответствует вашим потребностям, всего за пять шагов.

Шаг 1. Создание пунктов меню

Первый шаг к созданию меню - решить, что в него включить. Начните с перехода к Внешний вид> Меню на панели инструментов WordPress:

Доступ к редактору меню на панели инструментов WordPress

То, что вы видите в редакторе меню, может немного отличаться в зависимости от вашей темы.

Однако сейчас важно отметить первую опцию на вкладке Edit Menus . Вы должны увидеть опцию, в которой вы можете выбрать одно из существующих меню для редактирования, а также опцию для создания нового меню :

Ссылка на создание нового меню в верхней части редактора меню WordPress.

В этом примере мы выберем последний вариант и создадим новое меню.Для этого нужно добавить заголовок и затем нажать кнопку Create Menu :

Присвоение имени и создание нового меню

Теперь вы готовы начать добавлять элементы в меню WordPress. В большинстве случаев лучше сделать меню максимально простым, но при этом предоставлять пользователям достаточно информации, чтобы они могли добраться до нужного места.

Добавление слишком большого количества страниц может ошеломить посетителей и усложнить навигацию, а не упростить ее.

Есть несколько способов добавления пунктов меню.Первые два - это страницы и сообщения , и работают они очень похоже.

Добавление страниц в меню

На боковой панели редактора меню просто установите флажки для каждой страницы или сообщения, которое вы хотите включить, и нажмите кнопку Добавить в меню :

Ваш следующий вариант - включить Custom Links . Это включает в себя предоставление URL-адреса страницы, на которую вы хотите направить пользователей, а затем создание для нее короткой, но описательной метки.После этого вы можете снова нажать Добавить в меню :

Добавление кастомной ссылки в меню

Наконец, вы также можете добавить Категории страниц и сообщений в свое меню навигации. Это переведет пользователей на страницу архива, где они смогут просмотреть весь контент по определенной теме.

Блоги и другие сайты с большим количеством контента могут найти эту функцию особенно полезной:

Добавление категорий в меню

Как и в случае с параметрами Страницы , и Сообщения, просто установите флажки из и категории , которые вы хотите включить, и выберите Добавить в меню .

Шаг 2. Организуйте свое меню WordPress

После того, как вы добавили все элементы меню, вы должны увидеть их перечисленными на отдельных плитках в разделе Структура меню в редакторе:

Раздел «Структура меню» редактора меню

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

Есть несколько способов добавить выпадающие списки в меню WordPress.

Самый простой - продолжить перетаскивание, но начать вкладывать одни пункты меню в другие:

Вложенность категорий на странице блога

Например, на изображении выше мы переместили три категории сообщений, которые мы добавили в меню, под Blog , сделав их «подпунктами». На веб-интерфейсе это создаст раскрывающееся меню, которое выглядит следующим образом:

Пример выпадающего меню в WordPress

Если вы хотите добавить раскрывающееся меню, которое включает все категории на вашем сайте, вы можете сделать это, добавив настраиваемую ссылку в свое меню.Используйте «#» в качестве URL-адреса и «Категории» или что-то подобное для ярлыка:

Создание метки категорий для меню

Затем вы можете добавить все свои категории в меню и вложить их под этим ярлыком. Каждая категория будет интерактивной, но метка не будет:

.

Раскрывающееся меню Категории

Используя аналогичную технику, вы также можете скрыть все элементы меню в одном раскрывающемся меню.

Добавьте еще одну настраиваемую ссылку, используя «#» в качестве URL-адреса и «Меню» в качестве метки.Затем вложите все остальные пункты меню под этим:

Размещение всех навигационных ссылок под одной меткой меню

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

Как вы можете видеть в элементе Категории ниже, любой контент, вложенный в подпункт, будет отображаться в подменю:

Подпишитесь на информационный бюллетень

Мы увеличили наш трафик на 1187% с помощью WordPress.

Мы покажем вам, как это сделать.

Присоединяйтесь к 20 000+ другим, кто получает нашу еженедельную рассылку с инсайдерскими советами по WordPress!

Подпишитесь сейчас

Настоящее раскрывающееся меню навигации WordPress

Используя редактор перетаскивания меню таким образом, вы можете создать любой стиль и комбинацию раскрывающихся меню WordPress. Однако помните, что слишком большое количество пунктов меню может сбивать с толку пользователей.

Также лучше ограничить количество включаемых подменю, чтобы не загромождать навигацию.

Шаг 3. Добавьте изображения в меню WordPress

Если к концу шага 2 ваше раскрывающееся меню выглядит точно так, как вы его себе представляли, вы можете перейти к шагу 5, чтобы опубликовать его. Однако есть дополнительные шаги, которые вы можете предпринять, если хотите улучшить свое меню с помощью настроек.

Одна из тактик, которую следует рассмотреть, - это включить в меню визуальные элементы, чтобы обеспечить дальнейшее руководство для посетителей. Хотя описательные метки жизненно важны, иногда изображение или значок могут помочь пользователям быстрее определить, куда ведет конкретная навигационная ссылка.

Можно добавлять изображения с помощью настраиваемого CSS, о котором мы вскоре поговорим. Однако мы рекомендуем использовать плагин, например Menu Image, Icons Made Easy:

Выпадающее меню WordPress с изображениями

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

Просто установите плагин и затем вернитесь к Внешний вид> Меню :

Раздел «Изображение меню» в редакторе меню

Вы увидите, что теперь есть варианты изображений для каждой страницы, которую вы включили в свое меню.Вы можете выбрать фото, размер и положение каждой страницы. Не забудьте сохранить изменения, когда закончите.

Шаг 4. Добавьте собственный CSS в раскрывающееся меню

Хотя это не рекомендуется для новичков, пользователи среднего и продвинутого уровней могут захотеть включить свой собственный стиль в свои раскрывающиеся меню WordPress. Однако, прежде чем сразу перейти к CSS, вам нужно добавить класс в свое меню.

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

В редакторе меню нажмите Параметры экрана в правом верхнем углу:

Вкладка «Параметры экрана» в редакторе меню

Затем установите флажок CSS Classes :

Флажок "Классы CSS" на вкладке "Параметры экрана"

Это добавит поле CSS Classes на каждую страницу в вашем меню:

Поле CSS Classes в редакторе меню

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

Теперь вы можете перейти к своей таблице стилей или Настройщику и приступить к работе над своим индивидуальным стилем.

Шаг 5: опубликуйте свое меню в лучших местах

Как только ваше раскрывающееся меню WordPress будет структурировано в соответствии с вашими потребностями, и вы включите все необходимые настройки, вы будете готовы опубликовать его на своем сайте.

Этот процесс будет немного отличаться в зависимости от вашей темы и поддерживаемых ею мест меню. В этом примере мы собираемся использовать тему Twenty Twenty.

В редакторе меню прокрутите вниз до раздела Настройки меню :

Раздел «Настройки меню» в редакторе

Вы можете установить первый флажок, если хотите, чтобы новые страницы автоматически добавлялись в ваше меню. Если вы только начинаете работу со своим сайтом и еще не добавили все ключевые страницы, это может быть полезно. Однако будьте осторожны, чтобы случайно не добавить слишком много пунктов в свое меню.

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

Тема Twenty Twenty включает в себя различные области меню: Горизонтальное меню рабочего стола , Расширенное меню рабочего стола , Мобильное меню , Меню нижнего колонтитула , Социальное меню .

В этом случае созданное нами меню лучше всего подходит для горизонтального меню Desktop Horizontal Menu , которое находится в заголовке сайта:

Горизонтальное меню рабочего стола для темы Twenty Twenty

Вы также можете рассмотреть возможность перехода на вкладку Управление местоположениями в области Меню панели инструментов.Здесь вы можете увидеть все местоположения меню, которые поддерживаются вашей темой, а также то, какое меню вы назначили каждому из них:

Вкладка "Управление местоположениями"

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

Управление с возможностью предварительного просмотра

Нажмите кнопку Manage with Live Preview , чтобы увидеть, как ваше меню будет отображаться в выбранном вами месте, с помощью настройщика WordPress:

Предварительный просмотр меню WordPress в настройщике

Затем вы можете опубликовать свое меню или меню прямо из Настройщика.Если вам когда-нибудь понадобится добавить или удалить элементы из раскрывающегося меню, вы можете просто вернуться в редактор меню и внести необходимые изменения.

Плагины

WordPress для улучшения раскрывающихся меню

Хотя вы можете создавать полнофункциональные навигационные меню WordPress без каких-либо дополнительных инструментов, иногда может быть полезно расширить функциональные возможности вашего меню. Если это так с вашим сайтом, вы можете изучить некоторые популярные плагины меню WordPress.

Nested Pages - это эффективный способ для блогов с большим объемом контента создавать раскрывающиеся меню.Хотя он в основном используется для организации сообщений и страниц, этот плагин также автоматически создает меню, которое отражает структуру вашего контента:

Плагин WordPress для вложенных страниц

Хотя не обязательно включать большое количество пунктов в меню, иногда это неизбежно.

Если это так с вашим сайтом, Max Mega Menu может помочь вам объединить существующие меню WordPress в одно «мегаменю»:

Max Mega Menu WordPress плагин

С ростом количества просмотров на мобильных устройствах, ключевым моментом является обеспечение возможности чтения ваших меню на мобильных устройствах.

WP Mobile Menu сочетается с любой адаптивной темой, чтобы помочь вам создать систему навигации для пользователей вашего сайта, которые находятся в пути:

WP Mobile Menus Плагин WordPress

Наконец, как мы уже обсуждали, могут быть ситуации, в которых описательных пунктов меню недостаточно. В таких ситуациях вам может потребоваться использовать изображение меню, упрощенные значки, как мы описали в шаге 3 выше.

Вы можете использовать любой из этих плагинов, чтобы улучшить вашу текущую систему навигации и сделать раскрывающееся меню WordPress более эффективным.Только помните, что иногда, когда дело касается навигации, проще - лучше . Добавляйте дополнительные функции только в том случае, если это улучшит ваш UX и не загромождает ваш сайт.

Устранение неполадок раскрывающегося меню WordPress

Если вы настроили меню, как описано выше, но раскрывающееся меню не работает, существует несколько возможных причин.

Хотя здесь мы не можем охватить все из них, мы можем помочь вам сузить причину вашей проблемы, чтобы вы могли найти правильное решение.

Часто неисправное меню является результатом конфликта кода между вашим пользовательским меню и вашей темой. Первое, что вам следует сделать, если ваше меню не работает, - это переключиться на тему по умолчанию, например Twenty Twenty. Если ваше меню снова заработает, значит, проблема связана с вашей темой. Затем вы можете связаться с разработчиком вашей темы, чтобы найти решение.

Несколько других возможных причин включают:

  • Код с ошибками: Еще раз проверьте правильность добавленных вами настраиваемых CSS и что вы используете классы CSS, как описано в шаге 4.
  • Несовместимость подключаемых модулей: Попробуйте отключить все установленные подключаемые модули, относящиеся к меню, и посмотрите, решит ли это проблему.
  • Устаревший jQuery: Обновите jQuery до последней версии и попробуйте снова открыть раскрывающееся меню.

Однако, как мы упоминали ранее, потенциальных причин неправильного меню много. Если ни одно из вышеперечисленных решений не работает, мы рекомендуем посетить форумы поддержки WordPress, обратиться к нашей опытной команде поддержки Kinsta WordPress или нанять разработчика WordPress, чтобы исправить это за вас.

Меню навигации - ключ к UX вашего сайта.