Maison > interface Web > tutoriel CSS > Comment puis-je implémenter les sous-menus déroulants Bootstrap dans Bootstrap 3, 4 et 5 ?

Comment puis-je implémenter les sous-menus déroulants Bootstrap dans Bootstrap 3, 4 et 5 ?

Linda Hamilton
Libérer: 2024-12-27 07:54:09
original
836 Les gens l'ont consulté

How Can I Implement Bootstrap Dropdown Submenus in Bootstrap 3, 4, and 5?

Sous-menu déroulant Bootstrap manquant

Bootstrap 3 a supprimé la classe de sous-menu déroulant dans RC, car les sous-menus ne sont plus largement utilisés, en particulier sur mobile appareils. Cependant, il existe plusieurs méthodes pour recréer la fonctionnalité du sous-menu à l'aide de CSS ou de JavaScript.

Bootstrap 5 (mise à jour 2023)

Méthode 1 : bascule JavaScript

Pour empêcher le sous-menu de se fermer lorsque la liste déroulante parent est ouvrir :

let dropdowns = document.querySelectorAll('.dropdown-toggle');
dropdowns.forEach((dd) => {
  dd.addEventListener('click', function (e) {
    var el = this.nextElementSibling;
    el.style.display = el.style.display === 'block' ? 'none' : 'block';
  });
});
Copier après la connexion

Méthode 2 : survol du menu CSS uniquement

Pour les listes déroulantes de la barre de navigation :

.dropdown-submenu {
  position: relative;
}

.dropdown-submenu .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -1px;
}

.navbar-nav li:hover > ul.dropdown-menu {
  display: block;
}
Copier après la connexion

Bootstrap 4 (2018 Mise à jour)

Vous pouvez implémenter la même fonctionnalité en utilisant CSS :

Sous-menu Navbar en survol

.navbar-nav li:hover > ul.dropdown-menu {
  display: block;
}

.dropdown-submenu {
  position: relative;
}

.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
}
Copier après la connexion

Bootstrap 3

Un exemple utilisant Bootstrap 3 :

CSS

.dropdown-submenu {
  position: relative;
}

.dropdown-submenu > .dropdown-menu {
  top: 0;
  left: 100%;
  margin-top: -6px;
  margin-left: -1px;
  -webkit-border-radius: 0 6px 6px 6px;
  -moz-border-radius: 0 6px 6px 6px;
  border-radius: 0 6px 6px 6px;
}

.dropdown-submenu:hover > .dropdown-menu {
  display: block;
}

.dropdown-submenu > a:after {
  display: block;
  content: " ";
  float: right;
  width: 0;
  height: 0;
  border-color: transparent;
  border-style: solid;
  border-width: 5px 0 5px 5px;
  border-left-color: #cccccc;
  margin-top: 5px;
  margin-right: -10px;
}

.dropdown-submenu:hover > a:after {
  border-left-color: #ffffff;
}

.dropdown-submenu.pull-left {
  float: none;
}

.dropdown-submenu.pull-left > .dropdown-menu {
  left: -100%;
  margin-left: 10px;
  -webkit-border-radius: 6px 0 6px 6px;
  -moz-border-radius: 6px 0 6px 6px;
  border-radius: 6px 0 6px 6px;
}
Copier après la connexion

Échantillon HTML

<div class="navbar navbar-default navbar-fixed-top" role="navigation">
  <div class="container">
    <div class="navbar-header">
      <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
        <span class="sr-only">Toggle navigation</span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </button>
    </div>
    <div class="collapse navbar-collapse navbar-ex1-collapse">
      <ul class="nav navbar-nav">
        <li class="menu-item dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown">Drop Down<b class="caret"></b></a>
          <ul class="dropdown-menu">
            <li class="menu-item dropdown dropdown-submenu">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">Level 1</a>
              <ul class="dropdown-menu">
                <li class="menu-item ">
                  <a href="#">Link 1</a>
                </li>
                <li class="menu-item dropdown dropdown-submenu">
                  <a href="#" class="dropdown-toggle" data-toggle="dropdown">Level 2</a>
                  <ul class="dropdown-menu">
                    <li>
                      <a href="#">Link 3</a>
                    </li>
                  </ul>
                </li>
              </ul>
            </li>
          </ul>
        </li>
      </ul>
    </div>
  </div>
</div>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal