Bootstrap 中的子菜单实现
Bootstrap 3 的初始版本缺少子菜单功能的专用类。不过,您仍然可以使用一些额外的 CSS 来实现子菜单。
Bootstrap 5(2023 更新)
要实现子菜单,请添加 JavaScript 以防止子菜单关闭当其父下拉列表打开时:
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' }) })
或者,专门使用 CSS导航栏下拉菜单:
.dropdown-submenu { position: relative; } .dropdown-submenu .dropdown-menu { top: 0; left: 100%; margin-top: -1px; } .navbar-nav li:hover > ul.dropdown-menu { display: block; }
Bootstrap 4(2018 更新)
Bootstrap 4 删除了 .dropdown-submenu 类。相反,使用 CSS 来实现子菜单功能:
悬停时的导航栏子菜单:
.navbar-nav li:hover > ul.dropdown-menu { display: block; } .dropdown-submenu { position:relative; } .dropdown-submenu>.dropdown-menu { top:0; left:100%; margin-top:-6px; }
Bootstrap 3
参考对于这个使用 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; }
标记:
<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>
以上是如何在 Bootstrap 3、4 和 5 中实现子菜单?的详细内容。更多信息请关注PHP中文网其他相关文章!