Как сделать 3-уровневое сворачивающееся меню в Bootstrap?
Я пытаюсь сделать 3-уровневое сворачивающееся меню navbar для Bootstrap, но я не могу открыть третий уровень.
это меню двух уровней, которое у меня есть:
<link href="https://stackpath.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet"/>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div class="nav-collapse">
<ul class="nav">
<a class="brand" href="#">Present Ideas</a>
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Help</a></li>
<li class="dropdown" id="accountmenu">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Account Settings<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Login</a></li>
<li><a href="#">Register</a></li>
<li class="divider"></li>
<li><a href="#">Logout</a></li>
</ul>
</li>
</ul>
<ul class="nav pull-right">
</ul>
</div>
<!--/.nav-collapse -->
</div>
</div>
</div>
Я думал что-то вроде этого будет работать:
<link href="https://stackpath.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet"/>
<div class="navbar navbar-fixed-top">
<div class="navbar-inner">
<div class="container">
<a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</a>
<div class="nav-collapse">
<ul class="nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#">Blog</a></li>
<li><a href="#">About</a></li>
<li><a href="#">Help</a></li>
<li class="dropdown" id="accountmenu">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Account Settings<b class="caret"></b></a>
<ul class="dropdown-menu">
<li><a href="#">Login</a></li>
<li class="item-148 dropdown parent">
<a href="/about/learn-more">Learn more <b class="caret-right"></b></a>
<ul class="dropdown-menu">
<li class="item-149"><a href="/about/learn-more/the-software">The Software</a></li>
<li class="item-150"><a href="/about/learn-more/the-project">The Project</a></li>
<li class="item-151"><a href="/about/learn-more/the-leadership">The Leadership</a></li>
<li class="item-152"><a href="/about/learn-more/open-source-matters">Open Source Matters</a></li>
</ul>
</li>
<li class="divider"></li>
<li><a href="#">Logout</a></li>
</ul>
</li>
</ul>
<ul class="nav pull-right">
</ul>
</div>
<!--/.nav-collapse -->
</div>
</div>
</div>
но это не работает.
2 ответов
Bootstrap 2.3.x и более поздние версии поддерживают dropdown-submenu
..
<ul class="dropdown-menu">
<li><a href="#">Login</a></li>
<li class="dropdown-submenu">
<a tabindex="-1" href="#">More options</a>
<ul class="dropdown-menu">
<li><a tabindex="-1" href="#">Second level</a></li>
<li><a href="#">Second level</a></li>
<li><a href="#">Second level</a></li>
</ul>
</li>
<li><a href="#">Logout</a></li>
</ul>
Bootstrap 3 отбросил встроенную поддержку вложенных сворачивающихся меню, но есть способ повторно включить его с помощью стороннего скрипта. Это называется SmartMenus. Это означает добавление трех новых ресурсов на вашу страницу, но он легко поддерживает Bootstrap 3.X с несколькими уровнями меню для вложенных <ul>/<li>
с элементами class="dropdown-menu"
. Он автоматически отображает правильный индикатор caret, а также.
<head>
...
<script src=".../jquery.smartmenus.min.js"></script>
<script src=".../jquery.smartmenus.bootstrap.min.js"></script>
...
<link rel="stylesheet" href=".../jquery.smartmenus.bootstrap.min.css"/>
...
</head>
вот демо-страница: http://vadikom.github.io/smartmenus/src/demo/bootstrap-navbar-fixed-top.html