25

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;
}
tadasajon
  • 14,276
  • 29
  • 92
  • 144

8 Answers8

46

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>
Bass Jobsen
  • 48,736
  • 16
  • 143
  • 224
  • 14
    This messes with the collapsed navigation menu for me – Tom Oct 21 '14 at 07:40
  • 2
    Having a width of 100% causes the header to overlap the collapsed navigation menu button making it unclickable. Having a narrower and centred navbar-header should stop the overlap leaving the button clickable. – Paul Bullivant Dec 11 '14 at 16:12
  • If using LESS, you can specify `@navbar-padding-vertical` instead of `padding: 15px;`. – XåpplI'-I0llwlg'I - Aug 14 '15 at 03:52
  • 2
    According to the question they dont need navbar-header since they don't have any other links in it. However, for others who do want links either increase the z-index of navbar-toggle or consider this apporach: http://stackoverflow.com/a/34150526/3123861 – Bryan Willis Dec 08 '15 at 08:01
24

Use these classes: navbar-brand mx-auto

All other solutions overcomplicate the matter.

stardust4891
  • 2,390
  • 1
  • 18
  • 30
8

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;
}

Bootply

Alternate example

Colin
  • 22,328
  • 17
  • 103
  • 197
Carol Skelly
  • 351,302
  • 90
  • 710
  • 624
6

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

Community
  • 1
  • 1
Bryan Willis
  • 3,552
  • 1
  • 25
  • 34
1

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;
}
1

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;
}
Grant
  • 5,709
  • 2
  • 38
  • 50
1

Just create this class and add it to your element to be centered.

.navbar-center {
  margin-left: auto;
  margin-right: auto;
}
Jeremy
  • 3,620
  • 9
  • 43
  • 75
1

In bootstrap, simply use mx-auto class along with navbar-brand.