Difference between revisions of "Bootstrap navigation bar"

From Wiki @ Karl Jones dot com
Jump to: navigation, search
(Requires Bootstrap CSS and JavaScript)
(Inverse navbar)
 
(4 intermediate revisions by the same user not shown)
Line 11: Line 11:
 
Using the Bootstrap navigation bar requires both Bootstrap CSS.
 
Using the Bootstrap navigation bar requires both Bootstrap CSS.
  
== Example ==
+
== Standard navigation bar ==
  
 +
Official example of the standard navbar:
 +
 +
http://getbootstrap.com/components/#navbar
 +
 +
Here is an example page based on the standard navbar:
 +
 +
http://code.karljones.com/bootstrap-examples/navbar-standard.html
 +
 +
=== HTML ===
 +
 +
Here is the [[HTML]] for the standard navbar:
 +
 +
<nowiki><nav class="navbar navbar-default">
 +
  <div class="container-fluid">
 +
    <!-- Brand and toggle get grouped for better mobile display -->
 +
    <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 class="navbar-brand" href="#">Brand</a>
 +
    </div>
 +
 +
    <!-- Collect the nav links, forms, and other content for toggling -->
 +
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
 +
      <ul class="nav navbar-nav">
 +
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
 +
        <li><a href="#">Link</a></li>
 +
        <li class="dropdown">
 +
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
 +
          <ul class="dropdown-menu">
 +
            <li><a href="#">Action</a></li>
 +
            <li><a href="#">Another action</a></li>
 +
            <li><a href="#">Something else here</a></li>
 +
            <li role="separator" class="divider"></li>
 +
            <li><a href="#">Separated link</a></li>
 +
            <li role="separator" class="divider"></li>
 +
            <li><a href="#">One more separated link</a></li>
 +
          </ul>
 +
        </li>
 +
      </ul>
 +
      <form class="navbar-form navbar-left" role="search">
 +
        <div class="form-group">
 +
          <input type="text" class="form-control" placeholder="Search">
 +
        </div>
 +
        <button type="submit" class="btn btn-default">Submit</button>
 +
      </form>
 +
      <ul class="nav navbar-nav navbar-right">
 +
        <li><a href="#">Link</a></li>
 +
        <li class="dropdown">
 +
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
 +
          <ul class="dropdown-menu">
 +
            <li><a href="#">Action</a></li>
 +
            <li><a href="#">Another action</a></li>
 +
            <li><a href="#">Something else here</a></li>
 +
            <li role="separator" class="divider"></li>
 +
            <li><a href="#">Separated link</a></li>
 +
          </ul>
 +
        </li>
 +
      </ul>
 +
    </div><!-- /.navbar-collapse -->
 +
  </div><!-- /.container-fluid -->
 +
</nav></nowiki>
 +
 +
=== CSS ===
 +
 +
Here are the standard [[CSS]] rules which apply to the standard navbar:
 +
 +
<nowiki>/* navbar */
 +
.navbar-default {
 +
    background-color: #F8F8F8;
 +
    border-color: #E7E7E7;
 +
}
 +
/* title */
 +
.navbar-default .navbar-brand {
 +
    color: #777;
 +
}
 +
.navbar-default .navbar-brand:hover,
 +
.navbar-default .navbar-brand:focus {
 +
    color: #5E5E5E;
 +
}
 +
/* link */
 +
.navbar-default .navbar-nav > li > a {
 +
    color: #777;
 +
}
 +
.navbar-default .navbar-nav > li > a:hover,
 +
.navbar-default .navbar-nav > li > a:focus {
 +
    color: #333;
 +
}
 +
.navbar-default .navbar-nav > .active > a,
 +
.navbar-default .navbar-nav > .active > a:hover,
 +
.navbar-default .navbar-nav > .active > a:focus {
 +
    color: #555;
 +
    background-color: #E7E7E7;
 +
}
 +
.navbar-default .navbar-nav > .open > a,
 +
.navbar-default .navbar-nav > .open > a:hover,
 +
.navbar-default .navbar-nav > .open > a:focus {
 +
    color: #555;
 +
    background-color: #D5D5D5;
 +
}
 +
/* caret */
 +
.navbar-default .navbar-nav > .dropdown > a .caret {
 +
    border-top-color: #777;
 +
    border-bottom-color: #777;
 +
}
 +
.navbar-default .navbar-nav > .dropdown > a:hover .caret,
 +
.navbar-default .navbar-nav > .dropdown > a:focus .caret {
 +
    border-top-color: #333;
 +
    border-bottom-color: #333;
 +
}
 +
.navbar-default .navbar-nav > .open > a .caret,
 +
.navbar-default .navbar-nav > .open > a:hover .caret,
 +
.navbar-default .navbar-nav > .open > a:focus .caret {
 +
    border-top-color: #555;
 +
    border-bottom-color: #555;
 +
}
 +
/* mobile version */
 +
.navbar-default .navbar-toggle {
 +
    border-color: #DDD;
 +
}
 +
.navbar-default .navbar-toggle:hover,
 +
.navbar-default .navbar-toggle:focus {
 +
    background-color: #DDD;
 +
}
 +
.navbar-default .navbar-toggle .icon-bar {
 +
    background-color: #CCC;
 +
}
 +
@media (max-width: 767px) {
 +
    .navbar-default .navbar-nav .open .dropdown-menu > li > a {
 +
        color: #777;
 +
    }
 +
    .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
 +
    .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
 +
        color: #333;
 +
    }
 +
}</nowiki>
 +
 +
Source: http://stackoverflow.com/questions/18529274/change-navbar-color-in-twitter-bootstrap-3
 +
 +
To implement custom colors, override the above rules with your own [[CSS]] rules.
 +
 +
Here is an example page with custom colors:
 +
 +
http://code.karljones.com/bootstrap-examples/navbar-custom-colors.html
 +
 +
== Inverse navbar ==
 +
 +
Bootstrap navbar has a set of inverse styles for the standard navbar.  Implement the inverse style by adding the <code>nav-inverse</code> class to your <code>nav</code> element, like this:
 +
 +
<nowiki><nav class="navbar navbar-inverse"> ... </nav></nowiki>
 +
 +
Here is an example page with an inverse navbar:
 +
 +
http://code.karljones.com/bootstrap-examples/navbar-inverse.html
 +
 +
Here is the same page with custom styles:
 +
 +
http://code.karljones.com/bootstrap-examples/navbar-inverse-custom-colors.html
 +
 +
Here is the custom inverse CSS:
 +
 +
<nowiki>.navbar-inverse {
 +
background-color: #660066;
 +
border-color: #330033;
 +
}
 +
.navbar-inverse .navbar-brand {
 +
color: #ff99ff;
 +
}
 +
 +
.navbar-inverse .navbar-nav>.active>a, .navbar-inverse .navbar-nav>.active>a:focus, .navbar-inverse .navbar-nav>.active>a:hover {
 +
color: #ffddff;
 +
background-color: #330033;
 +
}
 +
 +
.navbar-inverse .navbar-nav>li>a {
 +
color: #ffddff;
 +
}</nowiki>
 +
 +
== Pills navigation menu ==
 
Here is the HTML for a pills-style navigation bar:
 
Here is the HTML for a pills-style navigation bar:
  

Latest revision as of 11:44, 17 May 2016

In Bootstrap (framework), the navigation bar provides a responsive navigational menu.

Navigation bar and hamburger menu

On wider screens, the navigation bar displays at full width.

On narrow screen (mobile phones), the hamburger menu displays instead.

Requires Bootstrap CSS

Using the Bootstrap navigation bar requires both Bootstrap CSS.

Standard navigation bar

Official example of the standard navbar:

http://getbootstrap.com/components/#navbar

Here is an example page based on the standard navbar:

http://code.karljones.com/bootstrap-examples/navbar-standard.html

HTML

Here is the HTML for the standard navbar:

<nav class="navbar navbar-default">
  <div class="container-fluid">
    <!-- Brand and toggle get grouped for better mobile display -->
    <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 class="navbar-brand" href="#">Brand</a>
    </div>

    <!-- Collect the nav links, forms, and other content for toggling -->
    <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
      <ul class="nav navbar-nav">
        <li class="active"><a href="#">Link <span class="sr-only">(current)</span></a></li>
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">One more separated link</a></li>
          </ul>
        </li>
      </ul>
      <form class="navbar-form navbar-left" role="search">
        <div class="form-group">
          <input type="text" class="form-control" placeholder="Search">
        </div>
        <button type="submit" class="btn btn-default">Submit</button>
      </form>
      <ul class="nav navbar-nav navbar-right">
        <li><a href="#">Link</a></li>
        <li class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Dropdown <span class="caret"></span></a>
          <ul class="dropdown-menu">
            <li><a href="#">Action</a></li>
            <li><a href="#">Another action</a></li>
            <li><a href="#">Something else here</a></li>
            <li role="separator" class="divider"></li>
            <li><a href="#">Separated link</a></li>
          </ul>
        </li>
      </ul>
    </div><!-- /.navbar-collapse -->
  </div><!-- /.container-fluid -->
</nav>

CSS

Here are the standard CSS rules which apply to the standard navbar:

/* navbar */
.navbar-default {
    background-color: #F8F8F8;
    border-color: #E7E7E7;
}
/* title */
.navbar-default .navbar-brand {
    color: #777;
}
.navbar-default .navbar-brand:hover,
.navbar-default .navbar-brand:focus {
    color: #5E5E5E;
}
/* link */
.navbar-default .navbar-nav > li > a {
    color: #777;
}
.navbar-default .navbar-nav > li > a:hover,
.navbar-default .navbar-nav > li > a:focus {
    color: #333;
}
.navbar-default .navbar-nav > .active > a, 
.navbar-default .navbar-nav > .active > a:hover, 
.navbar-default .navbar-nav > .active > a:focus {
    color: #555;
    background-color: #E7E7E7;
}
.navbar-default .navbar-nav > .open > a, 
.navbar-default .navbar-nav > .open > a:hover, 
.navbar-default .navbar-nav > .open > a:focus {
    color: #555;
    background-color: #D5D5D5;
}
/* caret */
.navbar-default .navbar-nav > .dropdown > a .caret {
    border-top-color: #777;
    border-bottom-color: #777;
}
.navbar-default .navbar-nav > .dropdown > a:hover .caret,
.navbar-default .navbar-nav > .dropdown > a:focus .caret {
    border-top-color: #333;
    border-bottom-color: #333;
}
.navbar-default .navbar-nav > .open > a .caret, 
.navbar-default .navbar-nav > .open > a:hover .caret, 
.navbar-default .navbar-nav > .open > a:focus .caret {
    border-top-color: #555;
    border-bottom-color: #555;
}
/* mobile version */
.navbar-default .navbar-toggle {
    border-color: #DDD;
}
.navbar-default .navbar-toggle:hover,
.navbar-default .navbar-toggle:focus {
    background-color: #DDD;
}
.navbar-default .navbar-toggle .icon-bar {
    background-color: #CCC;
}
@media (max-width: 767px) {
    .navbar-default .navbar-nav .open .dropdown-menu > li > a {
        color: #777;
    }
    .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
    .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
        color: #333;
    }
}

Source: http://stackoverflow.com/questions/18529274/change-navbar-color-in-twitter-bootstrap-3

To implement custom colors, override the above rules with your own CSS rules.

Here is an example page with custom colors:

http://code.karljones.com/bootstrap-examples/navbar-custom-colors.html

Inverse navbar

Bootstrap navbar has a set of inverse styles for the standard navbar. Implement the inverse style by adding the nav-inverse class to your nav element, like this:

<nav class="navbar navbar-inverse"> ... </nav>

Here is an example page with an inverse navbar:

http://code.karljones.com/bootstrap-examples/navbar-inverse.html

Here is the same page with custom styles:

http://code.karljones.com/bootstrap-examples/navbar-inverse-custom-colors.html

Here is the custom inverse CSS:

.navbar-inverse {
 background-color: #660066;
 border-color: #330033;
}
 .navbar-inverse .navbar-brand {
 color: #ff99ff;
}
	
.navbar-inverse .navbar-nav>.active>a, .navbar-inverse .navbar-nav>.active>a:focus, .navbar-inverse .navbar-nav>.active>a:hover {
 color: #ffddff;
 background-color: #330033;
}

.navbar-inverse .navbar-nav>li>a {
 color: #ffddff;
}

Pills navigation menu

Here is the HTML for a pills-style navigation bar:

<nav>
 <ul class="nav nav-pills pull-right">
  <li role="presentation" class="active"><a href="#">Home</a></li>
  <li role="presentation"><a href="#">About</a></li>
  <li role="presentation"><a href="#">Contact</a></li>
 </ul>
</nav>

Source: http://getbootstrap.com/examples/jumbotron-narrow/

See also

External links

General

code.karljones.com