【问题标题】:Creating 2 navbar using Bootstrap 4使用 Bootstrap 4 创建 2 个导航栏
【发布时间】:2019-11-26 21:38:21
【问题描述】:

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

第一个导航栏(带有样品品牌)固定在顶部,第二个导航栏可滚动?

不确定是否有来自 Bootstrap 的实用程序可以用来处理这个问题。

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

我当前的代码是:

<nav class="navbar navbar-expand-lg 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-lg navbar-dark p1-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>

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

不太确定我应该使用什么 margin-top 值,因为 Bootstrap 的导航栏没有固定高度。

尽可能地,我不想用 javascript 来做,因为我认为在 css 中有一种可能的方法(我只是不知道。Ikr haha​​!)并且使用 javascript 是一种矫枉过正。呵呵

【问题讨论】:

  • 你想让第二个导航栏也折叠到切换器中吗?还是您希望它始终可见?

标签: html css twitter-bootstrap bootstrap-4


【解决方案1】:

您将辅助导航栏设置为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>

【讨论】:

    【解决方案2】:

    这与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

    【讨论】:

      猜你喜欢
      • 2017-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多