如何在 Bootstrap 中制作 3 级折叠菜单?

Posted

技术标签:

【中文标题】如何在 Bootstrap 中制作 3 级折叠菜单?【英文标题】:How to make a 3-level collapsing menu in Bootstrap? 【发布时间】:2013-06-27 03:50:45 【问题描述】:

我正在尝试为 Bootstrap 制作一个 3 级折叠导航栏菜单,但我无法打开第三级。

这是我拥有的两级菜单:

<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&nbsp;<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>

但这不起作用。

【问题讨论】:

也请看这里bootsnipp.com/snippets/featured/multi-level-dropdown-menu-bs3 【参考方案1】:

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>

Working demo on Bootply.com

【讨论】:

是的,请参阅此线程以获取 Bootstrap v3 子菜单:***.com/questions/18023493/… 使用 Bootstrap 3 删除多级菜单,一个无痛的解决方法是 SmartMenus。我也会添加作为答案。【参考方案2】:

Bootstrap 3 放弃了对嵌套折叠菜单的原生支持,但有一种方法可以使用第 3 方脚本重新启用它。它被称为SmartMenus。这意味着向您的页面添加三个新资源,但它无缝地支持 Bootstrap 3.x,具有嵌套 &lt;ul&gt;/&lt;li&gt; 元素和 class="dropdown-menu" 的多级菜单。它还会自动显示正确的插入符号。

<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

【讨论】:

以上是关于如何在 Bootstrap 中制作 3 级折叠菜单?的主要内容,如果未能解决你的问题,请参考以下文章

如何在折叠的导航栏中默认打开 Bootstrap 3 下拉菜单

在折叠时合并多个 Bootstrap 3 导航栏菜单

从 bootstrap 3 导航栏的折叠中排除菜单项

Bootstrap:单击菜单外部时如何关闭打开的折叠导航栏?

Bootstrap 3 固定顶部导航栏显示水平滚动

如何使用 Bootstrap 4 的左手汉堡忽略菜单折叠中的项目?