缺少 Bootstrap 下拉子菜单
Bootstrap 3 删除了 RC 中的下拉子菜单类,因为子菜单不再广泛使用,特别是在移动设备上设备。但是,有多种方法可以使用 CSS 或 JavaScript 重新创建子菜单功能。
Bootstrap 5(2023 更新)
方法 1: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'; }); });
方法 2:仅 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)更新)
你可以使用 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; }
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>
以上是如何在 Bootstrap 3、4 和 5 中实现 Bootstrap 下拉子菜单?的详细内容。更多信息请关注PHP中文网其他相关文章!