Reputation: 420
How do I make it so the items (menu, about us, etc) are all evenly spaced out throughout the navbar and not bunched up to one side?
https://jsfiddle.net/dd19sg5x/
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<nav class="navbar navbar-default">
<div>
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-nav-demo" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar">a</span>
<span class="icon-bar">b</span>
<span class="icon-bar">c</span>
</button>
<img src="images\logo.png" href="main_page.html" width=75% height=75% alt="Company Logo of Broadstairs Hotel" href="www.google.com"/>
</div>
<div class="collapse navbar-collapse container" id="bs-nav-demo">
<ul class="nav navbar-nav" id="top-navbar">
<li><a href="html\book.html">Book</a></li>
<li><a href="#">Menu</a></li>
<li><a href="#">Enquire</a></li>
<li><a href="#">Facillities</a></li>
<li><a href="#">Rooms</a></li>
<li><a href="#">Contact us</a></li>
<!-- Navbar stuff is done -->
</div>
</div>
</nav>
Upvotes: 0
Views: 1214
Reputation: 591
CSS Flex seems to be a good solution.
These two links have helped me a lot.
Your code could look like this:
@media (min-width: 992px) {
ul.navbar-nav {
display: flex;
justify-content: space-between;
width: 100%
}
}
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"></script>
<nav class="navbar navbar-toggleable-md navbar-light bg-faded">
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<a class="nav-brand"><img src="images\logo.png" href="main_page.html" width=75% height=75% alt="Company Logo of Broadstairs Hotel" href="www.google.com"/></a>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav">
<li class="nav-item"><a class="nav-link" href="html\book.html">Book</a></li>
<li class="nav-item"><a class="nav-link" href="#">Menu</a></li>
<li class="nav-item"><a class="nav-link" href="#">Enquire</a></li>
<li class="nav-item"><a class="nav-link" href="#">Facillities</a></li>
<li class="nav-item"><a class="nav-link" href="#">Rooms</a></li>
<li class="nav-item"><a class="nav-link" href="#">Contact us</a></li>
</ul>
</div>
</nav>
Upvotes: 1
Reputation: 4425
My tip is to set the .navbar-header
to a fixed width depending on your logo width and make it position: absolute;
. I've set it to 200px;
. Than the padding-left
of the .navbar-collapse
will be that 200px;
After that if you have 6 menuitems, than one item should be exactly 16.666%
wide.
See it in action here: https://jsfiddle.net/9ts0Lcxe/
Added code in css in is:
@media (min-width: 768px) {
.navbar .navbar-header {
position: absolute;
left: 0;
top: 0;
width: 200px;
}
.navbar .navbar-collapse {
width: 100%;
padding-left: 200px;
}
.navbar .navbar-collapse .navbar-nav {
width: 100%;
}
.navbar .navbar-collapse .navbar-nav > li {
width: 16.666%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
Upvotes: 1