Многократное раскрывающееся меню в Bootstrap 4: навигационная панель

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для реализации многоуровневого выпадающего меню в Bootstrap 4 вам необходимо вложить элемент .dropdown-menu внутрь .dropdown-item. Для стилизации вложенных элементов можно использовать пользовательский класс, например, .dropdown-submenu:

HTML
Скопировать код
<!-- Элемент списка навигации -->
<li class="nav-item dropdown">
  <!-- Ссылка с активацией выпадающего меню -->
  <a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown">Выпадающее меню</a>
  <!-- Вложенное меню -->
  <ul class="dropdown-menu">
    <!-- Элемент подменю -->
    <li class="dropdown-submenu">
      <a class="dropdown-toggle" href="#">Подменю</a>
      <!-- Второй уровень вложенности -->
      <ul class="dropdown-menu">
        <li><a href="#">Пункт подменю</a></li>
        <!-- Подменю второго уровня -->
        <li class="dropdown-submenu">
            <a class="dropdown-toggle" href="#">Подменю второго уровня</a>
            <!-- Третий уровень вложенности -->
            <ul class="dropdown-menu">
                <li><a href="#">Дополнительный пункт подменю</a></li>
            </ul>
        </li>
      </ul>
    </li>
  </ul>
</li>

Стилизуйте подменю с помощью CSS:

CSS
Скопировать код
/* Позиционирование подменю сбоку */
.dropdown-submenu .dropdown-menu { 
  position: absolute;
  top: 0; 
  left: 100%; 
  margin-top: -1px; 
}

Не забудьте подключить JavaScript, jQuery и Bootstrap для корректной работы функционала.

Кинга Идем в IT: пошаговый план для смены профессии

Усовершенствование взаимодействия и доступности

Состояния наведения и фокусировки

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

CSS
Скопировать код
/* Стилизация состояний наведения и фокуса */
.dropdown-submenu:hover > .dropdown-menu,
.dropdown-submenu:focus > .dropdown-menu {
    display: block;
}

Динамическое изменение состояния

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

JS
Скопировать код
/* Код для динамической обработки меню */
$('.dropdown-submenu a').on("click", function(e) {
    $(this).next('ul').toggle();
    e.stopPropagation();
    e.preventDefault();
});

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

Гибкая настройка

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

JS
Скопировать код
/* Генератор пользовательского меню */
function generateMenu(menuArray) {
    let html = '<ul class="dropdown-menu">';
    
    menuArray.forEach(item => {
        html += '<li class="dropdown-submenu">';
        html += `<a class="dropdown-toggle" href="#">${item.title}</a>`;
        
        if(item.submenu) {
            html += generateMenu(item.submenu);
        }
        html += '</li>';
    });
    html += '</ul>';
    return html;
}

Визуализация

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

Markdown
Скопировать код
🏰: Основной блок – корневой уровень навигации
  ├── 🏠: Дочерний блок – выпадающий список
  │     └── 🏡: Внутренний блок – подменю второго уровня
  └── 🏢: Другой дочерний блок – другой выпадающий список

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

Markdown
Скопировать код
В Bootstrap 4:
- 🏰 символизирует навигационный бар
- 🏠 & 🏢 представляют выпадающие списки в нем
- 🏡 отвечает за вложенные подменю

Совместимость и оптимизация кода

Убедитесь, что ваш код совместим с актуальной версией Bootstrap 4.4.1 и избавьтесь от ненужных стилей:

JS
Скопировать код
/* Проверка совместимости с Bootstrap версии 4.4.1 */
if (BootstrapVersion !== "4.4.1") {
    console.error("Ошибка совместимости! Пришло время выпустить Кракена!");
}

Полезные материалы

  1. Выпадающие меню в Bootstrap
  2. Codeply v2
  3. Выпадающие меню на CSS | CSS-Tricks
  4. Навигационная панель в Bootstrap – подробное руководство и обучающий материал – Bootstrapious
  5. Универсальные выпадающие меню для сайта при помощи jQuery плагина » Документация
  6. Бесплатные примеры HTML-кода для Bootstrap