Difference between revisions of "Bootstrap navigation bar"
Karl Jones (Talk | contribs) (→Requires Bootstrap CSS and JavaScript) |
Karl Jones (Talk | contribs) (→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. | ||
− | == | + | == 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.
Contents
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.
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
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; }
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
- Starter template @ getbootstrap.com
- Navbar component @ getbootstrap.com
- Bootstrap navbar generator @ smarchal.com
- Change navbar color in Twitter Bootstrap 3 @ stackoverflow