2014-07-14 08:33:54 +02:00
---
2015-08-15 07:45:55 +02:00
layout: docs
2014-10-27 12:52:48 +01:00
title: Navbar
2016-10-03 03:19:47 +02:00
description: Documentation and examples for Bootstrap's powerful, responsive navigation header.
2015-08-06 02:47:45 +02:00
group: components
2014-07-14 08:33:54 +02:00
---
2016-12-21 22:08:34 +01:00
The navbar is a wrapper that positions branding, navigation, and other elements in a concise header. It's easily extensible and, thanks to our Collapse plugin, can easily integrate responsive behaviors.
2014-07-14 08:33:54 +02:00
2015-05-29 10:58:52 +02:00
## Contents
* Will be replaced with the ToC, excluding the "Contents" header
{:toc}
2016-12-21 22:12:55 +01:00
## How it works
2014-10-27 12:49:24 +01:00
Here's what you need to know before getting started with the navbar:
2016-12-21 22:08:34 +01:00
- Navbars require a wrapping `.navbar` and [color scheme ](#color-schemes ) classes.
2014-10-27 12:49:24 +01:00
- Navbars and their contents are fluid by default. Use [optional containers ](#containers ) to limit their horizontal width.
2016-12-21 22:12:55 +01:00
- Navbars and their contents are built with flexbox, providing easy alignment options via utility classes.
- Navbars are responsive by default, but you can easily modify them to change that. Responsive behavior depends on our Collapse JavaScript plugin.
2014-12-01 05:17:45 +01:00
- Ensure accessibility by using a `<nav>` element or, if using a more generic element such as a `<div>` , add a `role="navigation"` to every navbar to explicitly identify it as a landmark region for users of assistive technologies.
2014-10-27 12:49:24 +01:00
2016-12-21 22:12:55 +01:00
Read on for an example and list of supported sub-components.
2015-08-18 08:43:59 +02:00
## Supported content
2014-10-27 12:49:24 +01:00
2016-12-21 22:08:34 +01:00
Navbars come with built-in support for a handful of sub-components. Choose from the following as needed:
2014-10-27 12:49:24 +01:00
2015-08-18 08:43:59 +02:00
- `.navbar-brand` for your company, product, or project name
- `.navbar-nav` for a full-height and lightweight navigation (including support for dropdowns)
2016-10-03 18:55:59 +02:00
- `.navbar-toggler` for use with our collapse plugin and other [navigation toggling ](#collapsible-content ) behaviors.
2016-10-19 09:18:47 +02:00
- Inline forms with `.float-` utilities for form controls and components.
- `.navbar-text` for adding vertically centered strings of text.
2016-12-21 22:08:34 +01:00
- `.inline-form` for form controls and more.
2016-12-22 02:52:28 +01:00
- `.collapse.navbar-collapse` for grouping and hiding navbar contents by a parent breakpoint.
2014-10-27 12:49:24 +01:00
2016-12-21 22:08:34 +01:00
Here's an example of all the sub-components included in a responsive light-themed navbar.
2014-07-14 08:33:54 +02:00
2014-10-27 12:49:24 +01:00
{% example html %}
2016-12-22 02:52:28 +01:00
< nav class = "navbar navbar-light navbar-toggleable-md bg-faded" >
2016-12-21 22:17:48 +01:00
< button class = "navbar-toggler navbar-toggler-right hidden-lg-up" type = "button" data-toggle = "collapse" data-target = "#navbarSupportedContent" aria-controls = "navbarSupportedContent" aria-expanded = "false" aria-label = "Toggle navigation" > < / button >
2015-08-18 08:43:59 +02:00
< a class = "navbar-brand" href = "#" > Navbar< / a >
2016-12-21 22:17:48 +01:00
2016-12-22 02:52:28 +01:00
< div class = "collapse navbar-collapse" id = "navbarSupportedContent" >
2016-12-21 22:17:48 +01:00
< ul class = "nav navbar-nav" >
< li class = "nav-item active" >
< a class = "nav-link" href = "#" > Home < span class = "sr-only" > (current)< / span > < / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Link< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link disabled" href = "#" > Disabled< / a >
< / li >
< / ul >
< form class = "form-inline mt-2 mt-md-0" >
< input class = "form-control" type = "text" placeholder = "Search" >
< button class = "btn btn-outline-success my-2 my-md-0" type = "submit" > Search< / button >
< / form >
< / div >
2014-12-01 05:17:45 +01:00
< / nav >
2014-10-27 12:49:24 +01:00
{% endexample %}
2015-12-07 07:34:06 +01:00
### Brand
2016-02-09 07:13:30 +01:00
The `.navbar-brand` can be applied to most elements, but an anchor works best as some elements might require utility classes or custom styles.
2015-12-07 07:34:06 +01:00
{% example html %}
2016-05-13 04:47:49 +02:00
<!-- As a link -->
2015-12-07 07:34:06 +01:00
< nav class = "navbar navbar-light bg-faded" >
< a class = "navbar-brand" href = "#" > Navbar< / a >
< / nav >
2016-05-13 04:47:49 +02:00
<!-- As a heading -->
2015-12-07 07:34:06 +01:00
< nav class = "navbar navbar-light bg-faded" >
2016-09-09 07:16:28 +02:00
< h1 class = "navbar-brand mb-0" > Navbar< / h1 >
2015-12-07 07:34:06 +01:00
< / nav >
{% endexample %}
2016-10-19 03:47:49 +02:00
Adding images to the `.navbar-brand` will likely always require custom styles or utilities to properly size. Here are some examples to demonstrate.
{% example html %}
<!-- Just an image -->
< nav class = "navbar navbar-light bg-faded" >
< a class = "navbar-brand" href = "#" >
2016-10-19 09:30:59 +02:00
< img src = "{{ site.baseurl }}/assets/brand/bootstrap-solid.svg" width = "30" height = "30" alt = "" >
2016-10-19 03:47:49 +02:00
< / a >
< / nav >
{% endexample %}
{% example html %}
<!-- Image and text -->
< nav class = "navbar navbar-light bg-faded" >
< a class = "navbar-brand" href = "#" >
2016-10-19 09:30:59 +02:00
< img src = "{{ site.baseurl }}/assets/brand/bootstrap-solid.svg" width = "30" height = "30" class = "d-inline-block align-top" alt = "" >
2016-10-19 03:47:49 +02:00
Bootstrap
< / a >
< / nav >
{% endexample %}
2015-12-07 07:34:06 +01:00
### Nav
2016-12-21 22:08:34 +01:00
Navbar navigation is similar to our regular nav options—use the `.nav` base class with the `.navbar-nav` modifier correctly position your links. **Navbar navigation will grow to occupy as much horizontal space as possible** to keep your navbar contents aligned properly.
2015-12-07 07:34:06 +01:00
2016-05-14 21:41:26 +02:00
Active states—with `.active` —to indicate the current page can be applied directly to `.nav-link` s or their immediate parent `.nav-item` s.
2015-12-07 07:34:06 +01:00
{% example html %}
< nav class = "navbar navbar-light bg-faded" >
< ul class = "nav navbar-nav" >
< li class = "nav-item active" >
< a class = "nav-link" href = "#" > Home < span class = "sr-only" > (current)< / span > < / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Features< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Pricing< / a >
< / li >
< li class = "nav-item" >
2016-11-26 09:19:30 +01:00
< a class = "nav-link disabled" href = "#" > Disabled< / a >
2015-12-07 07:34:06 +01:00
< / li >
< / ul >
< / nav >
{% endexample %}
2015-12-08 09:36:42 +01:00
And because we use classes for our navs, you can avoid the list-based approach entirely if you like.
2015-12-07 07:34:06 +01:00
{% example html %}
< nav class = "navbar navbar-light bg-faded" >
< div class = "nav navbar-nav" >
< a class = "nav-item nav-link active" href = "#" > Home < span class = "sr-only" > (current)< / span > < / a >
< a class = "nav-item nav-link" href = "#" > Features< / a >
< a class = "nav-item nav-link" href = "#" > Pricing< / a >
2016-11-26 09:19:30 +01:00
< a class = "nav-item nav-link disabled" href = "#" > Disabled< / a >
2015-12-07 07:34:06 +01:00
< / div >
< / nav >
{% endexample %}
2016-05-13 17:19:16 +02:00
You may also utilize dropdowns in your navbar nav. Dropdown menus require a wrapping element for positioning, so be sure to use separate and nested elements for `.nav-item` and `.nav-link` as shown below.
{% example html %}
< nav class = "navbar navbar-light bg-faded" >
< ul class = "nav navbar-nav" >
< li class = "nav-item active" >
< a class = "nav-link" href = "#" > Home < span class = "sr-only" > (current)< / span > < / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Features< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Pricing< / a >
< / li >
< li class = "nav-item dropdown" >
2016-10-17 05:45:12 +02:00
< a class = "nav-link dropdown-toggle" href = "http://example.com" id = "navbarDropdownMenuLink" data-toggle = "dropdown" aria-haspopup = "true" aria-expanded = "false" >
2016-05-13 17:19:16 +02:00
Dropdown link
< / a >
< div class = "dropdown-menu" aria-labelledby = "navbarDropdownMenuLink" >
< a class = "dropdown-item" href = "#" > Action< / a >
< a class = "dropdown-item" href = "#" > Another action< / a >
< a class = "dropdown-item" href = "#" > Something else here< / a >
< / div >
< / li >
< / ul >
< / nav >
{% endexample %}
2016-10-19 09:18:47 +02:00
### Forms
2016-12-21 22:08:34 +01:00
Place various form controls and components within a navbar with `.form-inline` .
2016-10-19 09:18:47 +02:00
{% example html %}
< nav class = "navbar navbar-light bg-faded" >
2016-12-21 22:08:34 +01:00
< form class = "form-inline" >
< input class = "form-control" type = "text" placeholder = "Search" >
< button class = "btn btn-outline-success" type = "submit" > Search< / button >
< / form >
< / nav >
{% endexample %}
Align the contents of your inline forms with utilities as needed.
{% example html %}
< nav class = "navbar navbar-light bg-faded flex-items-right" >
< form class = "form-inline" >
2016-10-19 09:18:47 +02:00
< input class = "form-control" type = "text" placeholder = "Search" >
< button class = "btn btn-outline-success" type = "submit" > Search< / button >
< / form >
< / nav >
{% endexample %}
Input groups work, too:
{% example html %}
< nav class = "navbar navbar-light bg-faded" >
2016-12-21 22:08:34 +01:00
< form class = "form-inline" >
2016-10-19 09:18:47 +02:00
< div class = "input-group" >
< span class = "input-group-addon" id = "basic-addon1" > @< / span >
< input type = "text" class = "form-control" placeholder = "Username" aria-describedby = "basic-addon1" >
< / div >
< / form >
< / nav >
{% endexample %}
2016-12-21 22:08:34 +01:00
Various buttons are supported as part of these navbar forms, too. This is also a great reminder that vertical alignment utilities can be used to align different sized elements.
2016-10-19 09:18:47 +02:00
{% example html %}
< nav class = "navbar navbar-light bg-faded" >
2016-12-21 22:08:34 +01:00
< form class = "form-inline" >
2016-10-19 09:18:47 +02:00
< button class = "btn btn-outline-success" type = "button" > Main button< / button >
< button class = "btn btn-sm align-middle btn-outline-secondary" type = "button" > Smaller button< / button >
< / form >
< / nav >
{% endexample %}
2016-05-15 21:29:56 +02:00
### Text
Navbars may contain bits of text with the help of `.navbar-text` . This class adjusts vertical alignment and horizontal spacing for strings of text.
{% example html %}
< nav class = "navbar navbar-light bg-faded" >
2016-05-15 21:37:47 +02:00
< span class = "navbar-text" >
Navbar text with an inline element
< / span >
2016-05-15 21:29:56 +02:00
< / nav >
{% endexample %}
2015-08-18 09:46:29 +02:00
## Color schemes
2014-10-27 12:49:24 +01:00
2016-12-21 22:08:34 +01:00
Theming the navbar has never been easier thanks to the combination of theming classes and `background-color` utilities. Chose from `.navbar-light` for use with light background colors, or `.navbar-dark` for dark background colors. Then, customize with `.bg-*` utilities.
2015-08-18 09:46:29 +02:00
< div class = "bd-example" >
2016-12-22 03:29:51 +01:00
< nav class = "navbar navbar-dark navbar-toggleable-md bg-inverse" >
< button class = "navbar-toggler navbar-toggler-right hidden-lg-up" type = "button" data-toggle = "collapse" data-target = "#navbarColor01" aria-controls = "navbarColor01" aria-expanded = "false" aria-label = "Toggle navigation" > < / button >
2015-08-18 09:46:29 +02:00
< a class = "navbar-brand" href = "#" > Navbar< / a >
2016-12-22 03:29:51 +01:00
< div class = "collapse navbar-collapse" id = "navbarColor01" >
< ul class = "nav navbar-nav" >
< li class = "nav-item active" >
< a class = "nav-link" href = "#" > Home < span class = "sr-only" > (current)< / span > < / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Features< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Pricing< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > About< / a >
< / li >
< / ul >
< form class = "form-inline" >
< input class = "form-control" type = "text" placeholder = "Search" >
< button class = "btn btn-outline-info" type = "submit" > Search< / button >
< / form >
< / div >
2015-08-18 09:46:29 +02:00
< / nav >
2016-12-22 03:29:51 +01:00
< nav class = "navbar navbar-dark navbar-toggleable-md bg-primary" >
< button class = "navbar-toggler navbar-toggler-right hidden-lg-up" type = "button" data-toggle = "collapse" data-target = "#navbarColor02" aria-controls = "navbarColor02" aria-expanded = "false" aria-label = "Toggle navigation" > < / button >
2015-08-18 09:46:29 +02:00
< a class = "navbar-brand" href = "#" > Navbar< / a >
2016-12-22 03:29:51 +01:00
< div class = "collapse navbar-collapse" id = "navbarColor02" >
< ul class = "nav navbar-nav" >
< li class = "nav-item active" >
< a class = "nav-link" href = "#" > Home < span class = "sr-only" > (current)< / span > < / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Features< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Pricing< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > About< / a >
< / li >
< / ul >
< form class = "form-inline" >
< input class = "form-control" type = "text" placeholder = "Search" >
< button class = "btn btn-outline-secondary" type = "submit" > Search< / button >
< / form >
< / div >
2015-08-18 09:46:29 +02:00
< / nav >
2016-12-22 03:29:51 +01:00
< nav class = "navbar navbar-light navbar-toggleable-md" style = "background-color: #e3f2fd ;" >
< button class = "navbar-toggler navbar-toggler-right hidden-lg-up" type = "button" data-toggle = "collapse" data-target = "#navbarColor03" aria-controls = "navbarColor03" aria-expanded = "false" aria-label = "Toggle navigation" > < / button >
2015-08-18 09:46:29 +02:00
< a class = "navbar-brand" href = "#" > Navbar< / a >
2016-12-22 03:29:51 +01:00
< div class = "collapse navbar-collapse" id = "navbarColor03" >
< ul class = "nav navbar-nav" >
< li class = "nav-item active" >
< a class = "nav-link" href = "#" > Home < span class = "sr-only" > (current)< / span > < / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Features< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Pricing< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > About< / a >
< / li >
< / ul >
< form class = "form-inline" >
< input class = "form-control" type = "text" placeholder = "Search" >
< button class = "btn btn-outline-primary" type = "submit" > Search< / button >
< / form >
< / div >
2015-08-18 09:46:29 +02:00
< / nav >
< / div >
{% highlight html %}
< nav class = "navbar navbar-dark bg-inverse" >
<!-- Navbar content -->
2014-12-01 05:17:45 +01:00
< / nav >
2015-08-18 09:46:29 +02:00
< nav class = "navbar navbar-dark bg-primary" >
<!-- Navbar content -->
< / nav >
< nav class = "navbar navbar-light" style = "background-color: #e3f2fd ;" >
<!-- Navbar content -->
< / nav >
{% endhighlight %}
2014-07-14 08:33:54 +02:00
2015-08-18 08:43:59 +02:00
## Containers
2015-06-23 01:30:52 +02:00
2015-12-07 07:47:23 +01:00
Although it's not required, you can wrap a navbar in a `.container` to center it on a page or add one within to only center the contents of a [fixed or static top navbar ](#placement ).
2015-04-19 03:12:10 +02:00
2015-08-18 08:43:59 +02:00
{% example html %}
< div class = "container" >
2015-08-18 09:46:29 +02:00
< nav class = "navbar navbar-light bg-faded" >
2015-08-18 08:43:59 +02:00
< a class = "navbar-brand" href = "#" > Navbar< / a >
2015-06-23 08:24:55 +02:00
< / nav >
< / div >
2015-08-18 08:43:59 +02:00
{% endexample %}
2015-06-23 08:24:55 +02:00
2015-08-18 08:43:59 +02:00
{% example html %}
2015-08-18 09:46:29 +02:00
< nav class = "navbar navbar-light bg-faded" >
2015-08-18 08:43:59 +02:00
< div class = "container" >
< a class = "navbar-brand" href = "#" > Navbar< / a >
< / div >
2015-04-19 03:12:10 +02:00
< / nav >
2015-08-18 08:43:59 +02:00
{% endexample %}
2015-04-19 03:12:10 +02:00
2015-08-18 10:18:21 +02:00
## Placement
2015-09-06 05:58:28 +02:00
Navbars can be statically placed (their default behavior), static without rounded corners, or fixed to the top or bottom of the viewport.
{% example html %}
2016-12-21 22:14:48 +01:00
< nav class = "navbar navbar-light bg-faded" >
2015-09-06 05:58:28 +02:00
< a class = "navbar-brand" href = "#" > Full width< / a >
< / nav >
{% endexample %}
2015-08-18 10:18:21 +02:00
{% example html %}
< nav class = "navbar navbar-fixed-top navbar-light bg-faded" >
< a class = "navbar-brand" href = "#" > Fixed top< / a >
< / nav >
{% endexample %}
{% example html %}
< nav class = "navbar navbar-fixed-bottom navbar-light bg-faded" >
< a class = "navbar-brand" href = "#" > Fixed bottom< / a >
< / nav >
{% endexample %}
2016-12-22 02:52:39 +01:00
## Responsive behaviors
Navbars can utilize `.navbar-toggler` , `.navbar-collapse` , and `.navbar-toggleable-*` classes to change when their content collapses behind a button. In combination with other utilities, you can easily choose when to show or hide particular elements.
### Toggler
Navbar togglers can be left or right aligned with `.navbar-toggler-left` or `.navbar-toggler-right` modifiers. These are absolutely positioned within the navbar to avoid interference with the collapsed state. You can also use your own styles to position togglers. Below are examples of different toggle styles.
With no `.navbar-brand` shown in lowest breakpoint:
{% example html %}
< nav class = "navbar navbar-light navbar-toggleable-md bg-faded" >
< button class = "navbar-toggler hidden-lg-up" type = "button" data-toggle = "collapse" data-target = "#navbarTogglerDemo01" aria-controls = "navbarTogglerDemo01" aria-expanded = "false" aria-label = "Toggle navigation" > < / button >
< div class = "collapse navbar-collapse" id = "navbarTogglerDemo01" >
< a class = "navbar-brand" href = "#" > Hidden brand< / a >
< ul class = "nav navbar-nav mt-2 mt-lg-0" >
< li class = "nav-item active" >
< a class = "nav-link" href = "#" > Home < span class = "sr-only" > (current)< / span > < / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Link< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link disabled" href = "#" > Disabled< / a >
< / li >
< / ul >
< form class = "form-inline mt-2 mt-lg-0" >
< input class = "form-control" type = "text" placeholder = "Search" >
< button class = "btn btn-outline-success my-2 my-lg-0" type = "submit" > Search< / button >
< / form >
< / div >
< / nav >
{% endexample %}
With a brand name shown on the left and toggler on the right:
{% example html %}
< nav class = "navbar navbar-light navbar-toggleable-md bg-faded" >
< button class = "navbar-toggler navbar-toggler-right hidden-lg-up" type = "button" data-toggle = "collapse" data-target = "#navbarTogglerDemo02" aria-controls = "navbarTogglerDemo02" aria-expanded = "false" aria-label = "Toggle navigation" > < / button >
< a class = "navbar-brand" href = "#" > Navbar< / a >
< div class = "collapse navbar-collapse" id = "navbarTogglerDemo02" >
< ul class = "nav navbar-nav mt-2 mt-md-0" >
< li class = "nav-item active" >
< a class = "nav-link" href = "#" > Home < span class = "sr-only" > (current)< / span > < / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link" href = "#" > Link< / a >
< / li >
< li class = "nav-item" >
< a class = "nav-link disabled" href = "#" > Disabled< / a >
< / li >
< / ul >
< form class = "form-inline mt-2 mt-lg-0" >
< input class = "form-control" type = "text" placeholder = "Search" >
< button class = "btn btn-outline-success my-2 my-lg-0" type = "submit" > Search< / button >
< / form >
< / div >
< / nav >
{% endexample %}
### External content
Sometimes you want to use the collapse plugin to trigger hidden content elsewhere on the page. Because our plugin works on the `id` and `data-target` matching, that's easily done!
{% example html %}
< div class = "pos-f-t" >
< div class = "collapse" id = "navbarToggleExternalContent" >
2016-12-22 03:18:59 +01:00
< div class = "bg-inverse p-4" >
< h4 class = "text-white" > Collapsed content< / h4 >
2016-12-22 02:52:39 +01:00
< span class = "text-muted" > Toggleable via the navbar brand.< / span >
< / div >
< / div >
< nav class = "navbar navbar-dark bg-inverse" >
< button class = "navbar-toggler" type = "button" data-toggle = "collapse" data-target = "#navbarToggleExternalContent" aria-controls = "navbarToggleExternalContent" aria-expanded = "false" aria-label = "Toggle navigation" > < / button >
< / nav >
< / div >
{% endexample %}