I'm new to the bootstrap framework.
Logo Increasing Height of NavBar:
In my navigation bar, I have inserted a logo that has a height of 50px. This obviously makes the navbar taller. I have not adjusted any CSS for this, it is simply the logo that is forcing the increased height.
Problem:
The links in the navbar are aligned to the top of the now taller navbar.
Goal:
I'd like the links vertically centered in the navbar as that will look much better.
My assumption was to play with line-height values or padding. However, that introduced the problem of still taking effect on mobile browsers (when it switches to the toggle menu) so my expanded menu ends up being way too tall that it looked silly.
Any insight is greatly appreciated?
My CSS is the default bootstrap CSS downloaded with the latest version 3.0.2.
Here is my HTML:
<!-- Begin NavBar -->
<div class="navbar navbar-inverse navbar-static-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".menu2">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand" href="#"><img src="img/logo.png" width="210" height="50" alt="My Logo"></span>
</div>
<div class="navbar-collapse collapse menu2">
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Link 1</a></li>
<li><a href="#">Link 2</a></li>
<li><a href="#">Link 3</a></li>
<li><a href="#">Link 4</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</div>
It is those "Link 1", "Link 2", "Link 3" and "Link 4" links that are aligning to the top, when I really want them to be aligned vertically in the center.
Bootstrap sets the height of the navbar automatically to 50px. The padding above and below links is set to 15px. I think that bootstrap is adding padding to your logo.
You can either remove some of the padding above and below your logo or you can add more padding above and below links.
Adding more padding should look something like this:
I actually ended up with something like this to allow for the navbar collapse.
add this to your stylesheet. line-height should match the height of your logo
Check out the fiddle at: http://jsfiddle.net/nD4tW/
I found that you don't necessarily need the text vertically centred, it also looks good near the bottom of the row, it's only when it's at the top (or above centre?) that it looks wrong. So I went with this to push the links to the bottom of the row:
My brand image is SVG and I used
height: 50px; width: auto
which makes it about 216px wide. It spilled out of its container vertically so I added themin-height: 80px;
to make room for it plus bootstrap's 15px margins. Then I tweaked thenavbar-collapse
'sleft
setting until it looked right.Use the Bootstrap Customizer to generate a version of Bootstrap that has a taller navbar. The value you want to change is
@navbar-height
in the Navbar section.Inspect your current implementation to see how tall your navbar is with the 50px brand image, and use that calculated height in the Customizer.
Matt's answer is fine, but just to avoid this to propagate to other elements inside the navbar (like when you also have a dropdown), use