Bootstrap 4 - 折叠外的导航栏项目

Posted

技术标签:

【中文标题】Bootstrap 4 - 折叠外的导航栏项目【英文标题】:Bootstrap 4 - Navbar items outside the collapse 【发布时间】:2018-02-18 20:21:33 【问题描述】:

好吧,所以我不得不承认,即使在 BS3 中,我也一直在努力正确地工作。但我希望在折叠容器之外有保持持久性的导航栏链接。

这就是我现在拥有的:

<nav class="navbar fixed-top navbar-expand-lg navbar-template">
    <a class="navbar-brand" href="#">Navbar</a>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNavDropdown">
        <ul class="navbar-nav ml-auto">
            <li class="nav-item"><a class="nav-link" href="#">Home</a></li>
            <li class="nav-item"><a class="nav-link" href="#">Features</a></li>
            <li class="nav-item"><a class="nav-link" href="#">Pricing</a></li>
            <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown">Dropdown link</a>
                <div class="dropdown-menu dropdown-menu-right">
                    <a class="dropdown-item" href="#">Action</a>
                    <a class="dropdown-item" href="#">Another action</a>
                    <a class="dropdown-item" href="#">Something else here</a>
                </div>
            </li>
        </ul>
    </div>
    <ul class="navbar-nav">
        <li class="nav-item"><a class="nav-link" href="#"><span class="fa fa-facebook"></span></a></li>
        <li class="nav-item"><a class="nav-link" href="#"><span class="fa fa-twitter"></span></a></li>
        <li class="nav-item"><a class="nav-link" href="#"><span class="fa fa-youtube"></span></a></li>
        <li class="nav-item"><a class="nav-link" href="#"><span class="fa fa-linkedin"></span></a></li>
    </ul>
</nav>

这一直有效,直到第一个导航处于折叠状态。当折叠处于活动状态时,它看起来像这样:

有没有人为此找到一个干净的解决方案?

【问题讨论】:

在折叠之外你想要什么项目? 第二个导航组...即:社交媒体链接 移动设备中的预期对齐方式是什么? @ZimSystem 品牌 = 左对齐,折叠 = 右对齐第一,社交图标 = 右对齐第二 【参考方案1】:

最简单的方法是使用 flexbox 实用程序类,因此不需要额外的 CSS。将您始终想要显示的项目保留在 navbar-collapse div 之外。

https://www.codeply.com/go/TWZGiy3VGw

<nav class="navbar fixed-top navbar-light navbar-expand-lg navbar-template">
    <a class="navbar-brand" href="#">Navbar</a>
    <div class="d-flex flex-row order-2 order-lg-3">
        <ul class="navbar-nav flex-row">
            <li class="nav-item"><a class="nav-link px-2" href="#"><span class="fa fa-facebook"></span></a></li>
            <li class="nav-item"><a class="nav-link px-2" href="#"><span class="fa fa-twitter"></span></a></li>
            <li class="nav-item"><a class="nav-link px-2" href="#"><span class="fa fa-youtube"></span></a></li>
            <li class="nav-item"><a class="nav-link px-2" href="#"><span class="fa fa-linkedin"></span></a></li>
        </ul>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown">
            <span class="navbar-toggler-icon"></span>
        </button>
    </div>
    <div class="collapse navbar-collapse order-3 order-lg-2" id="navbarNavDropdown">
        <ul class="navbar-nav ml-auto">
            <li class="nav-item"><a class="nav-link" href="#">Home</a></li>
            <li class="nav-item"><a class="nav-link" href="#">Features</a></li>
            <li class="nav-item"><a class="nav-link" href="#">Pricing</a></li>
            <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown">Dropdown link</a>
                <div class="dropdown-menu dropdown-menu-right">
                    <a class="dropdown-item" href="#">Action</a>
                    <a class="dropdown-item" href="#">Another action</a>
                    <a class="dropdown-item" href="#">Something else here</a>
                </div>
            </li>
        </ul>
    </div>
</nav>

注意使用响应式order-* 类来确保在折叠/移动断点中折叠菜单项保持在最后 (order-3)。

【讨论】:

谢谢,这正是我想要的。我想我需要阅读 BS4 的新实用程序类 :) 很酷,但是折叠外的项目在小屏模式下会断行

以上是关于Bootstrap 4 - 折叠外的导航栏项目的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 4 导航栏不会在 Angular 4 中折叠

bootstrap 4中的堆叠可折叠导航栏

Bootstrap 4:在导航栏折叠时显示活动导航项

JavaScript - Bootstrap 4 - 仅在折叠时隐藏导航栏

Bootstrap 3 Navbar 左侧和右侧导航栏项目的左侧折叠菜单

防止项目在引导程序 4 导航栏切换中折叠