Home > Web Front-end > CSS Tutorial > How Do I Implement Submenus in Bootstrap 3, 4, and 5?

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

Patricia Arquette
Release: 2024-12-29 09:37:10
Original
777 people have browsed it

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

Submenu Implementation in Bootstrap

Bootstrap 3's initial release lacked a dedicated class for submenu functionality. However, you can still implement submenus with a bit of additional CSS.

Bootstrap 5 (2023 Update)

To implement submenus, add JavaScript to prevent the closure of submenus when their parent dropdown is open:

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'
    })
})
Copy after login

Alternatively, use CSS specifically for Navbar dropdowns:

.dropdown-submenu {
  position: relative;
}

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

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

Bootstrap 4 (2018 Update)

Bootstrap 4 removed the .dropdown-submenu class. Instead, use CSS to achieve submenu functionality:

Navbar Submenu on Hover:

.navbar-nav li:hover > ul.dropdown-menu {
    display: block;
}
.dropdown-submenu {
    position:relative;
}
.dropdown-submenu>.dropdown-menu {
    top:0;
    left:100%;
    margin-top:-6px;
}
Copy after login

Bootstrap 3

Refer to this example using 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;
}
Copy after login

Markup:

<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>
Copy after login

The above is the detailed content of How Do I Implement Submenus in Bootstrap 3, 4, and 5?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template