Bootstrap 3.0 导航栏中的多个折叠按钮

Posted

技术标签:

【中文标题】Bootstrap 3.0 导航栏中的多个折叠按钮【英文标题】:Multiple Collapse buttons in navbar with Bootstrap 3.0 【发布时间】:2013-09-20 04:52:02 【问题描述】:

我正在使用 Bootstrap 3.0 显示带有一些链接和搜索字段的导航栏。 当我转到“移动版”时,我有一个按钮可以折叠导航栏并显示所有内容:链接和搜索字段。现在我需要两个按钮,一个只折叠导航栏的链接,另一个按钮只折叠搜索字段。我该怎么做?

【问题讨论】:

【参考方案1】:

将链接和搜索表单分成两个navbar-collapse 元素,并让每个按钮指向对应的一个:

示例标记:

<nav class="navbar navbar-default" role="navigation">
    <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#search">Toggle search</button>
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#links">Toggle links</button> 
        <a class="navbar-brand" href="#">Brand</a>
    </div>
    <ul class="collapse navbar-collapse nav navbar-nav" id="links">
        <!--Links go here-->
    </ul>
    <div class="collapse navbar-collapse" id="search">
        <form class="navbar-form navbar-left" role="search">
            <div class="form-group">
                <input type="text" class="form-control" placeholder="Search">
            </div>
            <button type="submit" class="btn btn-default">Submit</button>
        </form>
    </div>
</nav>

然后,您只需通过将其添加到您的 CSS 中来修复 .navbar-nav.navbar-collapse 之间的一些冲突样式:

@media (max-width:767px) 
    .navbar-nav.navbar-collapse 
        margin-left: 0;
        margin-right: 0;
        padding-left: 0;
        padding-right: 0;
    

这是一个demo fiddle

【讨论】:

感谢您的解决方案。我还发现有必要在上面的.navbar-nav.navbar-collapse 样式中添加margin-top:0;margin-bottom:0;,否则默认的垂直边距会在.navbar-nav 滑动关闭时导致轻微的跳跃。这是amended fiddle 我正在寻找一个 jQuery 解决方案来实现搜索,但没有意识到您可以只复制 Bootstrap 的菜单按钮。想想看,这应该是 Bootstrap 文档的一部分,因为可折叠搜索也是一种常见的响应模式。感谢您的聪明解决方案!

以上是关于Bootstrap 3.0 导航栏中的多个折叠按钮的主要内容,如果未能解决你的问题,请参考以下文章

切换按钮折叠在 Bootstrap 导航栏中不起作用

保持多个折叠打开(使用按钮切换)– Bootstrap 3

使 Bootstrap 3.0 NavBar 内容始终折叠

如何在导航栏中制作 Bootstrap 4 全宽下拉菜单?

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

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