Reputation: 3262
I'm using the following navbar. I need to be able to center the menu li
items when the navbar is collapsed.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
<nav class="navbar navbar-expand-lg navbar-light fixed-top" id="myNav">
<div class="collapse navbar-collapse">
<ul class="navbar-nav ms-auto me-4 my-3 my-lg-0">
<li class="nav-item"><a class="nav-link me-lg-3">Menu Item 1</a></li>
<li class="nav-item"><a class="nav-link me-lg-3">Menu Item 2</a></li>
</ul>
</div>
</nav>
The solution I came up with was doing the following:
<ul class="navbar-nav ms-auto me-4 my-3 my-lg-0">
<div class="d-flex flex-row justify-content-center">
<li class="nav-item"><a class="nav-link me-lg-3">Menu Item 1</a></li>
</div>
<div class="d-flex flex-row justify-content-center">
<li class="nav-item"><a class="nav-link me-lg-3">Menu Item 2</a></li>
</div>
</ul>
But as mentioned in the comments this is not a valid HTML - to have a div as a child of list element
It does work. But not valid - how can I properly center them then?
Upvotes: 1
Views: 178
Reputation: 61056
It's probably just a matter of applying text alignment selectively for the smaller breakpoint(s).
Note: d-block
added to the collapse element for demonstration here only. View the full page demo for the alternative layout.
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-Zenh87qX5JnK2Jl0vWa8Ck2rdkQ2Bzep5IDxbcnCeuOxjzrPF/et3URy9Bv1WTRi" crossorigin="anonymous">
<nav class="navbar navbar-expand-lg navbar-light fixed-top" id="myNav">
<div class="collapse navbar-collapse d-block">
<ul class="navbar-nav ms-auto me-4 my-3 my-lg-0 text-center">
<li class="nav-item"><a class="nav-link me-lg-3">Menu Item 1</a></li>
<li class="nav-item"><a class="nav-link me-lg-3">Menu Item 2</a></li>
</ul>
</div>
</nav>
Upvotes: 1