34

Is it possible to have multiple fixed-top navbars in Bootstrap 4 showing under each other?

The 1 currently overlays the other which is not what I want.

Zim
  • 329,487
  • 83
  • 671
  • 600
Byron Daries
  • 343
  • 1
  • 3
  • 4

2 Answers2

28

Yes, it's possible but you have to position the 2nd one accordingly. The height of the Navbar is ~56px.

.fixed-top-2 {
    margin-top: 56px;
}

body {
    padding-top: 105px;
}

<nav class="navbar navbar-toggleable-sm bg-faded navbar-light fixed-top fixed-top-2">
    <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbar1">
        <span class="navbar-toggler-icon"></span>
    </button>
    <a href="/" class="navbar-brand">One</a>
    <div class="navbar-collapse collapse" id="navbar1">
        <ul class="navbar-nav">
            ..
        </ul>
    </div>
</nav>

<nav class="navbar navbar-toggleable-sm bg-inverse navbar-inverse fixed-top">
    <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbar2">
        <span class="navbar-toggler-icon"></span>
    </button>
    <a href="/" class="navbar-brand">Two</a>
    <div class="navbar-collapse collapse" id="navbar2">
        <ul class="navbar-nav">
            ..
        </ul>
    </div>
</nav>

Demo: Bootstrap 4 Multiple fixed-top Navbars

In some scenarios, it may be better to use a single fixed-top DIV to contain both.

Also see:
Bootstrap 4 Navbar sticky after header
Bootstrap 4 collapsing two navbars into one toggle button

Zim
  • 329,487
  • 83
  • 671
  • 600
  • It loads for me. I posted the code in the question too. – Zim May 13 '17 at 11:18
  • 1
    That "sticky after header" link you posted is exactly what I was looking for, but I wasn't able to verbalise it. Thanks a million! – Neville Oct 24 '18 at 14:26
8

Both navs can use sticky-top (instead of fixed-top) so you don't have to set the padding on the body.

The second navbar should use top so that the padding will only show when it nears the top.

padding-top will create padding before it hits the top navbar when the padding is necessary.

See here:

https://www.codeply.com/p/sIIXzlAW3V

madav
  • 2,247
  • 1
  • 10
  • 16
  • 3
    Thank you for a good example. But try to look at it in mobile phone mode and click button on the upper menu. – Demiurg Aug 11 '20 at 06:29
  • 2
    @Demiurg Thanks for catching that! Will need to play with it to keep the li's on top. – madav Aug 16 '20 at 20:00