使用Bootstrap 4创建2个导航栏

时间:2019-11-25 17:57:39

标签: html css twitter-bootstrap bootstrap-4

是否可以使用Bootstrap 4.3.x创建两个不同的导航栏,如下图所示?

第一个导航栏(带有Sample Brand)固定在顶部,第二个导航栏可滚动吗?

enter image description here

不确定我是否可以使用Bootstrap中的实用程序来处理此问题。

我尝试在第二个导航栏上添加'margin-top:56px',这将留出空间,但这仅适用于大屏幕,因为当显示汉堡菜单图标时,第一个导航栏的高度会改变。

我当前的代码是:

stackview

在大屏幕上运行正常,但是当我在中小屏幕上进行测试时,会发生这种情况:

enter image description here

不确定使用Bootstrap的导航栏没有固定高度时应使用哪个边距最高值。

我尽可能不使用javascript,因为我认为css中有一种可能的方法(我只是不知道。Ikr哈哈!),而使用javascript是一个过大的杀伤力。呵呵

2 个答案:

答案 0 :(得分:2)

您已将辅助导航栏设置为navbar-expand-lg,因此它将在md断点处变为折叠的导航栏。如果您希望它保持扩展状态,请更改扩展断点。例如navbar-expand-mdnavbar-expand-sm或所有视口尺寸navbar-expand

下面是一个示例,其中辅助导航在所有视口中展开

<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>

<nav class="navbar navbar-expand-lg bg-dark navbar-dark fixed-top" >
    <div class="container">
        <a class="navbar-brand" href="#">
            Sample Brand
        </a>

        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>

        <div class="collapse navbar-collapse flex-column" id="navbarResponsive">
            <ul class="navbar-nav ml-auto">
                <li class="nav-item active">
                    <a class="nav-link" href="#">Login
                        <span class="sr-only">(current)</span>
                    </a>
                </li>

                <li class="nav-item">
                    <a class="nav-link" href="#">Register</a>
                </li>
            </ul>
        </div>
    </div>
</nav>


<nav class="navbar navbar-expand navbar-dark bg-primary static-top" style="margin-top: 56px">
    <div class="container">
        <div class="collapse navbar-collapse" id="navbarResponsive">
            <ul class="navbar-nav ">
                <li class="nav-item active">
                    <a class="nav-link" href="#">Home
                        <span class="sr-only">(current)</span>
                    </a>
                </li>

                <li class="nav-item font-weight-lighter">
                    <a class="nav-link" href="#">FAQs</a>
                </li>

                <li class="nav-item">
                    <a class="nav-link" href="#">Developer</a>
                </li>

                <li class="nav-item">
                    <a class="nav-link" href="#">Contact Us</a>
                </li>
            </ul>
        </div>
    </div>
</nav>

答案 1 :(得分:0)

这与Bootstrap 4 Multiple fixed-top navbars非常相似,除了第二导航栏是静态的。第二个导航栏上的边距顶部很好。

但是,“在大屏幕上运行正常,但是当我在中小屏幕上进行测试时,会发生...” * ,因为第二个导航栏失去了高度,因为它没有navbar-brand。第二导航栏根本不应该折叠,而应该展开...

<nav class="navbar navbar-expand-lg bg-dark navbar-dark fixed-top" >
    <div class="container">
        <a class="navbar-brand" href="#">
            Sample Brand
        </a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target=".navbar-collapse" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
            <span class="navbar-toggler-icon"></span>
        </button>
        <div class="collapse navbar-collapse" id="navbarResponsive">
            <ul class="navbar-nav ml-auto">
                ...
            </ul>
        </div>
    </div>
</nav>
<nav class="navbar navbar-expand bg-primary navbar-dark p1-primary static-top" style="margin-top: 56px">
    <div class="container">
        <ul class="navbar-nav ">
            ...
        </ul>
    </div>
</nav>

请参阅:https://codeply.com/p/Nqhb6cszbt/option2