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

Posted

技术标签:

【中文标题】防止项目在引导程序 4 导航栏切换中折叠【英文标题】:Prevent items from being collapsed in bootstrap 4 navbar toggle 【发布时间】:2018-09-11 00:54:19 【问题描述】:

我有一个 bootstrap 4 导航栏。在这个导航栏中,我有一个字体很棒的图标购物车,当页面通过最大宽度值时,我不想切换(进入那 3 行菜单) (来自引导程序的默认响应式导航栏)。我想留在菜单栏附近。我该怎么做? PS:我会放三个!字体真棒图标可以帮助您看到它。

html

<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
<a class="navbar-brand" href="index.php">English Park Cuisine</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavDropdown">
    <ul class="navbar-nav mr-auto">
        <li class="nav-item active">
            <a class="nav-link" href="index.php">Acasa<span class="sr-only">(current)</span></a>
        </li>
        <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                Meniu
            </a>
            <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                <a class="dropdown-item" href="meniu.php">Pizza</a>
                <a class="dropdown-item" href="#">Paste</a>
                <a class="dropdown-item" href="#">Supe</a>
                <a class="dropdown-item" href="#">Ciorbe</a>
                <a class="dropdown-item" href="#">Desert</a>
            </div>
        </li>
        <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Contact</a>
            <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                <p class="dropdown-item">0746117702</p>
                <p class="dropdown-item">0742112452</p>
                <p class="dropdown-item">0735212352</p>
            </div>
        </li>
    </ul>
    !!!<a href="#"><i class="fas fa-shopping-cart fa-lg" style="color: white;"></i></a>
    <ul class="navbar-nav">
        <li class="nav-item">
            <a class="nav-link" href="#">Login</a>
        </li>
        <li class="nav-item">
            <a class="nav-link" href="#">Register</a>
        </li>
    </ul>
</div>

【问题讨论】:

【参考方案1】:

您需要将不可折叠的项目分组到一个 div 中,然后使用间距和顺序实用程序根据需要对其进行对齐。

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

<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
    <a class="navbar-brand" href="#">English Park Cuisine</a>
    <div class="d-flex order-lg-1 ml-auto pr-2">
        <a href="#" class="navbar-text"><i class="fa fa-shopping-cart fa-lg" style="color: white;"></i></a>
        <ul class="navbar-nav flex-row">
            <li class="nav-item mx-2 mx-lg-0">
                <a class="nav-link" href="#">Login</a>
            </li>
            <li class="nav-item">
                <a class="nav-link" href="#">Register</a>
            </li>
        </ul>
    </div>
    <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
        <span class="navbar-toggler-icon"></span>
    </button>
    <div class="collapse navbar-collapse" id="navbarNavDropdown">
        <ul class="navbar-nav mr-auto">
            <li class="nav-item active">
                <a class="nav-link" href="index.php">Acasa<span class="sr-only">(current)</span></a>
            </li>
            <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                Meniu
            </a>
                <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                    <a class="dropdown-item" href="meniu.php">Pizza</a>
                    <a class="dropdown-item" href="#">Paste</a>
                    <a class="dropdown-item" href="#">Supe</a>
                    <a class="dropdown-item" href="#">Ciorbe</a>
                    <a class="dropdown-item" href="#">Desert</a>
                </div>
            </li>
            <li class="nav-item dropdown">
                <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Contact</a>
                <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                    <p class="dropdown-item">0746117702</p>
                    <p class="dropdown-item">0742112452</p>
                    <p class="dropdown-item">0735212352</p>
                </div>
            </li>
        </ul>
    </div>
</nav>

相关:Bootstrap 4 - Navbar items outside the collapse

【讨论】:

谢谢你,伙计!这是答案。因为我没有足够的声誉,所以我无法投票赞成您的回复。 我还有一个问题,我真的想不通 -.- 我怎样才能保持完全相同的位置,我的意思是购物车、登录、注册,但是当屏幕太小时,我只希望购物车留在导航栏上。请帮帮我好吗?【参考方案2】:

将您的购物车移出导航折叠 div 并将其嵌套,导航折叠在一个新的 div 中。然后相应地设置购物车的样式,但它不会随着导航折叠而消失。

<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top">
<a class="navbar-brand" href="index.php">English Park Cuisine</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavDropdown" aria-controls="navbarNavDropdown" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
</button>
<div> <!-- New Div !-->
<div class="collapse navbar-collapse" id="navbarNavDropdown">
    <ul class="navbar-nav mr-auto">
        <li class="nav-item active">
            <a class="nav-link" href="index.php">Acasa<span class="sr-only">(current)</span></a>
        </li>
        <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                Meniu
            </a>
            <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                <a class="dropdown-item" href="meniu.php">Pizza</a>
                <a class="dropdown-item" href="#">Paste</a>
                <a class="dropdown-item" href="#">Supe</a>
                <a class="dropdown-item" href="#">Ciorbe</a>
                <a class="dropdown-item" href="#">Desert</a>
            </div>
        </li>
        <li class="nav-item dropdown">
            <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Contact</a>
            <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
                <p class="dropdown-item">0746117702</p>
                <p class="dropdown-item">0742112452</p>
                <p class="dropdown-item">0735212352</p>
            </div>
        </li>
    </ul>
    <ul class="navbar-nav">
        <li class="nav-item">
            <a class="nav-link" href="#">Login</a>
        </li>
        <li class="nav-item">
            <a class="nav-link" href="#">Register</a>
        </li>
    </ul>
</div>
    <!-- move the anchor outside of the original div but nested inside the new div !-->
    !!!<a href="#"><i class="fas fa-shopping-cart fa-lg" style="color: white;"></i></a>
</div>

【讨论】:

它工作得不是很好。它会将切换菜单栏移动到中心。

以上是关于防止项目在引导程序 4 导航栏切换中折叠的主要内容,如果未能解决你的问题,请参考以下文章

引导导航栏链接切换器不显示

使 nav-pills 可折叠,就像引导程序中的导航栏一样

引导导航栏折叠未在单击时关闭

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

为啥导航栏列表不在右侧?

没有导航栏元素的引导导航切换