Pretty simple, but I'm fairly amateur with Bootstrap.
I understand how to make the navigation bar with an image as the brand and the nav-items. Without hacking it, is there a proper way to have the brand positioned above the expanded navigation?
Basically looking for this;
EXPANDED
-----------------------------------------
| Logo |
-----------------------------------------
| Home About Contact |
-----------------------------------------
COLLAPSED
-----------------
| Logo ≡ |
-----------------
<nav class="mainNav navbar navbar-expand-md justify-content-center">
<a class="navbar-brand" href="#">
<img src="img/logo.png" alt="Logo" height="80px" width="auto">
</a>
<ul class="navbar-nav">
<li class="nav-item">
<a class="nav-link" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Contact</a>
</li>
</ul>
</nav>
Use flex-column
to make the navbar items stack in 2 rows (lines).
- group the logo & toggler together in 1 flexbox div (
d-flex w-100
)
- use
mx-md-auto
(auto-margins) to center the logo on larger widths
- use
text-center
to center items in the navbar-nav
https://www.codeply.com/go/W9HQcd3Pyw
<nav class="mainNav navbar navbar-expand-md navbar-light flex-column">
<div class="w-100 d-flex">
<a class="navbar-brand mx-md-auto" href="#">
<img src="img/logo.png" alt="Logo" height="80px" width="auto">
</a>
<button class="navbar-toggler ml-auto" type="button" data-toggle="collapse" data-target=".navbar-collapse">
<span class="navbar-toggler-icon"></span>
</button>
</div>
<div class="collapse navbar-collapse">
<ul class="navbar-nav text-center">
<li class="nav-item">
<a class="nav-link" href="#">Home</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">About</a>
</li>
<li class="nav-item">
<a class="nav-link" href="#">Contact</a>
</li>
</ul>
</div>
</nav>
Read more about the Navbar and Utility classes in the Bootstrap 4 docs.
Related questions
How to centre navbar logo in Boostrap 4 with nav-links below
Bootstrap 4: Navbar with logo and 2 rows
Bootstrap 4 navbar with 2 rows and inline form