【问题标题】:Twitter Bootstrap: Collapse only certain menu items into drop-downTwitter Bootstrap:仅将某些菜单项折叠到下拉列表中
【发布时间】:2014-06-16 18:42:57
【问题描述】:

我想知道如何创建一个 Twitter Bootstrap navbar 来折叠该菜单中的项目,在调整浏览器窗口大小时一次折叠一个或两个项目。

我见过的大多数导航栏都将整个导航栏折叠成一个下拉菜单;调整窗口大小时,基本上隐藏该导航栏上的所有内容。但我仍然需要它来显示一些菜单项;所以部分崩溃了。

这是我的意思的一个例子(下面的菜单):

首页 |关于 |服务 |订购 |联系方式

当浏览器窗口从右侧调整大小时,我想要它做的是将最后一个(或两个)菜单项放入下拉列表中,然后它看起来像这样:

首页 |关于 |服务 |更多

                    -> Order
                    -> Contact

“更多”需要自动创建为下拉菜单,并在该下拉菜单中自动列出“订购”和“联系”菜单项。随着窗口变小,导航栏中的更多项目将添加到该下拉菜单中。当浏览器窗口调整为全屏宽度时,导航栏会恢复正常。这正是我们所需要的。

在我查看过的许多链接中,我发现了几个链接(不会将整个导航栏变成一个下拉菜单),但仍然像所有其他链接一样,它没有按照我的描述进行:

  1. http://jsfiddle.net/caio/gvw7j/embedded/result/
  2. Twitter Bootstrap Multilevel Dropdown Menu

使用上面的任何示例来实现我需要的最佳方法是什么?

【问题讨论】:

  • 是的,你真的应该先自己解决这个问题。使用 Bootstrap 和一些自制的 jQuery 非常简单。
  • 是的,我也在寻找类似的东西 blog.sodhanalibrary.com/2014/01/… 但用于引导

标签: twitter-bootstrap drop-down-menu menu navbar collapsable


【解决方案1】:

首先,确定哪些导航项应该在每个宽度断点处“消失”。然后,添加正确的 hidden-* 类以根据当前断点隐藏导航项。

我的解决方案要求您复制一些导航项,但使用 hidden-* 类设置它们的可见性,以便它们仅在适当的宽度断点处显示。

基本上,当浏览器变窄时,一个导航项将从主导航栏中隐藏,而相关的导航项将显示在下拉列表中。我的示例在四个默认宽度断点处隐藏了导航项。

<nav class="navbar navbar-default navbar-static-top navbar-inverse" role="navigation">
<div class="container-fluid">
    <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar-menu">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
        </button>
        <a href="/" class="navbar-brand">Brand Name</a>
    </div>
    <div id="navbar-menu" class="collapse navbar-collapse">
        <ul class="nav navbar-nav">
            <!--- Include all menu items, below, regardless of display width. --->
            <!--- This allows the full menu to be displayed on extra-small (xs) devices. --->
            <!--- Hide menu items depending on the available display width. --->
            <li><a href="/calendar/">Calendar</a></li>
            <li><a href="/journal/">Journal</a></li>
            <li><a href="/shows/">Shows</a></li>
            <li><a href="/venues/">Venues</a></li>

            <!--- Hide the following menu items depending on the available display width. --->
            <!--- Menu items that can't fit on the main nav bar will be displayed in the "More" dropdown menu. --->
            <li class="hidden-sm"><a href="/blackouts/">Blackouts</a></li>
            <li class="hidden-sm"><a href="/tasks/">Tasks</a></li>
            <li class="hidden-sm hidden-md"><a href="/songs/">Songs</a></li>
            <li class="hidden-sm hidden-md"><a href="/testimonials/">Testimonials</a></li>
            <li class="hidden-sm hidden-md hidden-lg"><a href="/artists/">Artists</a></li>
            <li class="hidden-sm hidden-md hidden-lg"><a href="/categories/">Categories</a></li>
            <li class="hidden-sm hidden-md hidden-lg"><a href="/cities/">Cities</a></li>
            <li class="hidden-sm hidden-md hidden-lg"><a href="/reports/">Reports</a></li>
            <li class="hidden-sm hidden-md hidden-lg"><a href="/users/">Users</a></li>

            <!--- The "More" dropdown menu item will be hidden on extra-small displays. --->
            <li class="dropdown hidden-xs">
                <a href="#" class="dropdown-toggle" data-toggle="dropdown">More <b class="caret"></b></a>
                <ul class="dropdown-menu">
                    <li class="hidden-lg hidden-md"><a href="/blackouts/">Blackouts</a></li>
                    <li class="hidden-lg hidden-md"><a href="/tasks/">Tasks</a></li>
                    <li class="hidden-lg"><a href="/songs/">Songs</a></li>
                    <li class="hidden-lg"><a href="/testimonials/">Testimonials</a></li>
                    <li class="divider hidden-lg"></li>

                    <!--- These menu items will only appear in the "More" dropdown menu. --->
                    <li><a href="/artists/">Artists</a></li>
                    <li><a href="/categories/">Categories</a></li>
                    <li><a href="/cities/">Cities</a></li>
                    <li><a href="/reports/">Reports</a></li>
                    <li><a href="/users/">Users</a></li>
                </ul>
            </li>
        </ul>
        <ul class="nav navbar-nav navbar-right">
            <li><a href="/?signout" id="signout"><span class="glyphicon glyphicon-lock"></span> Sign Out</a></li>
        </ul>
    </div>
</div>

【讨论】:

  • 非常感谢您,至少,您真正尝试帮助我。如果您有一个接受捐赠/提示的网站,请告诉我它是什么,以便我可以提示您真诚地尝试帮助我。
  • 我会说这是迄今为止最连贯和优雅的解决方案,尽管必须复制一些项目。 hidden-XX 类是专门为此类操作创建的。
猜你喜欢
  • 1970-01-01
  • 2013-10-10
  • 2012-03-12
  • 2012-07-14
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2020-01-24
  • 2012-02-21
相关资源
最近更新 更多