Reputation: 14864
I am using Bootstrap 3. I would like a navbar with only the brand in it. No other links or anything else. And I want the brand to be in the center. How can I accomplish this? The following css doesn't work:
.navbar-brand {
text-align: center;
}
Upvotes: 25
Views: 132752
Reputation: 3809
Just create this class and add it to your element to be centered.
.navbar-center {
margin-left: auto;
margin-right: auto;
}
Upvotes: 1
Reputation: 2550
Use these classes: navbar-brand mx-auto
All other solutions overcomplicate the matter.
Upvotes: 24
Reputation: 6347
I used two classes to achieve this and maintain responsiveness navbar-brand-left
and navbar-brand-center
. Keep in mind it utilises Sass / Less Bootstrap for line height, otherwise specify a hardcode px / rem height.
HTML
<nav class="navbar navbar-default">
<div class="container-fluid">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a href="#" class="navbar-brand-left visible-xs visible-sm">Brand</a>
</div>
<div class="collapse navbar-collapse text-center" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="#">About</a></li>
<li><a href="#">How it works</a></li>
</ul>
<a href="#" class="navbar-brand-center hidden-xs hidden-sm">Brand</a>
<ul class="nav navbar-nav navbar-right">
<li><a href="#">Log in</a></li>
<li><a href="#">Start now</a></li>
</ul>
</div><!-- /.navbar-collapse -->
</div><!-- /.container-fluid -->
</nav>
CSS
.navbar-brand-left {
display: inline-block;
margin: 0;
padding: 0;
line-height: @navbar-height;
}
.navbar-brand-center {
display: inline-block;
margin: 0 auto;
padding: 0;
line-height: @navbar-height;
}
Upvotes: 1
Reputation: 362760
Another option is to use nav-justified
..
<nav class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="navbar-collapse collapse">
<ul class="nav nav-justified">
<li><a href="#" class="navbar-brand">Brand</a></li>
</ul>
</div>
</nav>
CSS
.navbar-brand {
float:none;
}
Upvotes: 8
Reputation: 3642
If you have no other links, then there is no use for navbar-header....
HTML:
<nav class="navbar navbar-inverse navbar-static-top">
<div class="container">
<a class="navbar-brand text-center center-block" href="#">Navbar Brand</a>
.....
</nav>
CSS:
.navbar-brand {
float: none;
}
However, if you do want other links here's a very effective approach that allows that: https://stackoverflow.com/a/34149840/3123861
Upvotes: 6
Reputation: 11
To fix the overlap, you only need modify the .navbar-toggle in your own css styles
something like this, it works for me:
.navbar-toggle{
z-index: 10;
}
Upvotes: 1
Reputation: 49054
css:
.navbar-header {
float: left;
padding: 15px;
text-align: center;
width: 100%;
}
.navbar-brand {float:none;}
html:
<nav class="navbar navbar-default" role="navigation">
<div class="navbar-header">
<a class="navbar-brand" href="#">Brand</a>
</div>
</nav>
Upvotes: 46