navbar.md 7.59 KB
Newer Older
Mark Otto's avatar
Mark Otto committed
1
---
Mark Otto's avatar
Mark Otto committed
2
layout: docs
Mark Otto's avatar
Mark Otto committed
3
title: Navbar
4
group: components
Mark Otto's avatar
Mark Otto committed
5
6
---

Mark Otto's avatar
Mark Otto committed
7
The navbar is a simple wrapper for positioning branding, navigation, and other elements. It's easily extensible and with the help of our collapse plugin it can easily integrate offscreen content.
Mark Otto's avatar
Mark Otto committed
8

Mark Otto's avatar
Mark Otto committed
9
10
11
12
13
## Contents

* Will be replaced with the ToC, excluding the "Contents" header
{:toc}

Mark Otto's avatar
Mark Otto committed
14
15
16
17
18
19
20
### Basics

Here's what you need to know before getting started with the navbar:

- Navbars require a wrapping `.navbar` and either a color scheme class or custom styles.
- When using multiple components in a navbar, some [alignment classes](#alignment) are required.
- Navbars and their contents are fluid by default. Use [optional containers](#containers) to limit their horizontal width.
Mark Otto's avatar
Mark Otto committed
21
- 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.
Mark Otto's avatar
Mark Otto committed
22
23
24
25
26
27

### Branding

Name your company, product, or project with `.navbar-brand`.

{% example html %}
Mark Otto's avatar
Mark Otto committed
28
<nav class="navbar navbar-default">
Mark Otto's avatar
Mark Otto committed
29
  <h3 class="navbar-brand">
Mark Otto's avatar
Mark Otto committed
30
31
    <a href="#">Navbar</a>
  </h3>
Mark Otto's avatar
Mark Otto committed
32
</nav>
Mark Otto's avatar
Mark Otto committed
33
34
35
36
37
{% endexample %}

### Navigation

Use `.nav-pills` within a navbar for basic navigation.
Mark Otto's avatar
Mark Otto committed
38

Mark Otto's avatar
Mark Otto committed
39
{% example html %}
Mark Otto's avatar
Mark Otto committed
40
<nav class="navbar navbar-default">
Mark Otto's avatar
Mark Otto committed
41
  <ul class="nav nav-pills">
Mark Otto's avatar
Mark Otto committed
42
    <li class="nav-item active">
Mark Otto's avatar
Mark Otto committed
43
      <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
Mark Otto's avatar
Mark Otto committed
44
45
46
47
48
49
50
51
52
53
54
    </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>
Mark Otto's avatar
Mark Otto committed
55
</nav>
Mark Otto's avatar
Mark Otto committed
56
57
58
59
60
61
62
{% endexample %}

### Inline forms

Add an `.inline-form` within the navbar with nearly any combination of form controls and buttons.

{% example html %}
Mark Otto's avatar
Mark Otto committed
63
<nav class="navbar navbar-default">
Mark Otto's avatar
Mark Otto committed
64
65
66
67
  <form class="form-inline">
    <input class="form-control" type="text" placeholder="Search">
    <button class="btn btn-primary" type="submit">Search</button>
  </form>
Mark Otto's avatar
Mark Otto committed
68
</nav>
Mark Otto's avatar
Mark Otto committed
69
70
71
72
{% endexample %}

### Containers

73
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 the navbar.
Mark Otto's avatar
Mark Otto committed
74
75

{% example html %}
76
77
<div class="container">
  <nav class="navbar navbar-default">
Mark Otto's avatar
Mark Otto committed
78
79
80
    <h3 class="navbar-brand">
      <a href="#">Navbar</a>
    </h3>
81
82
  </nav>
</div>
Mark Otto's avatar
Mark Otto committed
83
84
85
{% endexample %}

{% example html %}
86
87
<nav class="navbar navbar-default">
  <div class="container">
Mark Otto's avatar
Mark Otto committed
88
89
90
    <h3 class="navbar-brand">
      <a href="#">Navbar</a>
    </h3>
91
92
  </div>
</nav>
Mark Otto's avatar
Mark Otto committed
93
{% endexample %}
Mark Otto's avatar
Mark Otto committed
94

Mark Otto's avatar
Mark Otto committed
95
96
97
98
99
### Alignment

Use `.pull-left` or `.pull-right` to align multiple elements within the navbar.

{% example html %}
Mark Otto's avatar
Mark Otto committed
100
<nav class="navbar navbar-default">
Mark Otto's avatar
Mark Otto committed
101
102
103
104
105
  <h3 class="navbar-brand pull-left">
    <a href="#">Navbar</a>
  </h3>
  <ul class="nav nav-pills pull-left">
    <li class="nav-item active">
Mark Otto's avatar
Mark Otto committed
106
      <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
Mark Otto's avatar
Mark Otto committed
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
    </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>
  <ul class="nav nav-pills pull-right">
    <li class="nav-item">
      <a class="nav-link" href="#">Help</a>
    </li>
    <li class="nav-item">
      <a class="nav-link" href="#">Sign out</a>
    </li>
  </ul>
Mark Otto's avatar
Mark Otto committed
126
</nav>
Mark Otto's avatar
Mark Otto committed
127
{% endexample %}
Mark Otto's avatar
Mark Otto committed
128

Mark Otto's avatar
Mark Otto committed
129
130
131
### Inverse color scheme

Replace `.navbar-default` with `.navbar-inverse` for a darker background color and white text.
Mark Otto's avatar
Mark Otto committed
132

Mark Otto's avatar
Mark Otto committed
133
{% example html %}
Mark Otto's avatar
Mark Otto committed
134
<nav class="navbar navbar-inverse">
Mark Otto's avatar
Mark Otto committed
135
136
137
138
139
  <h3 class="navbar-brand pull-left">
    <a href="#">Navbar</a>
  </h3>
  <ul class="nav nav-pills pull-left">
    <li class="nav-item active">
Mark Otto's avatar
Mark Otto committed
140
      <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
Mark Otto's avatar
Mark Otto committed
141
142
143
144
145
146
147
148
149
150
151
    </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>
Mark Otto's avatar
Mark Otto committed
152
  <form class="form-inline pull-right">
Mark Otto's avatar
Mark Otto committed
153
154
155
    <input class="form-control" type="text" placeholder="Search">
    <button class="btn btn-primary" type="submit">Search</button>
  </form>
Mark Otto's avatar
Mark Otto committed
156
</nav>
Mark Otto's avatar
Mark Otto committed
157
{% endexample %}
Mark Otto's avatar
Mark Otto committed
158

159
160
161
### Small navbar

Small navbars provide a similar aesthetic to Bootstrap 3's navbar. It cuts the padding down, enables full-height navigation, and tweaks vertical alignment for search forms, buttons, and more. It's also available in both default and inverse schemes.
162

163
When moving from a regular navbar to a small one, be sure to update your inputs and buttons to use their small variations as well.
164

165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
<div class="bd-example">
  <nav class="navbar navbar-default navbar-sm">
    <h3 class="navbar-brand pull-left">
      <a href="#">Navbar</a>
    </h3>
    <ul class="nav navbar-nav pull-left">
      <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 pull-right">
      <input class="form-control form-control-sm" type="text" placeholder="Search">
      <button class="btn btn-sm btn-primary" type="submit">Search</button>
    </form>
  </nav>

  <nav class="navbar navbar-inverse navbar-sm">
    <h3 class="navbar-brand pull-left">
      <a href="#">Navbar</a>
    </h3>
    <ul class="nav navbar-nav pull-left">
      <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 pull-right">
      <input class="form-control form-control-sm" type="text" placeholder="Search">
      <button class="btn btn-sm btn-primary" type="submit">Search</button>
    </form>
  </nav>
</div>

{% highlight html %}
216
<nav class="navbar navbar-default navbar-sm">
217
  <!-- Navbar contents -->
218
219
</nav>

220
<nav class="navbar navbar-inverse navbar-sm">
221
  <!-- Navbar contents -->
222
</nav>
223
{% endhighlight %}
224

Mark Otto's avatar
Mark Otto committed
225
### Collapsible content
Mark Otto's avatar
Mark Otto committed
226

Mark Otto's avatar
Mark Otto committed
227
Our collapse plugin allows you to use a `<button>` or `<a>` to toggle hidden content.
Mark Otto's avatar
Mark Otto committed
228
229

{% example html %}
Mark Otto's avatar
Mark Otto committed
230
<div class="collapse" id="exCollapsingNavbar">
Mark Otto's avatar
Mark Otto committed
231
  <div class="inverse p-a">
Mark Otto's avatar
Mark Otto committed
232
    <h4>Collapsed content</h4>
Mark Otto's avatar
Mark Otto committed
233
234
    <p>Toggleable via the navbar brand.</p>
  </div>
Mark Otto's avatar
Mark Otto committed
235
</div>
Mark Otto's avatar
Mark Otto committed
236
<nav class="navbar navbar-default">
Mark Otto's avatar
Mark Otto committed
237
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#exCollapsingNavbar">
Mark Otto's avatar
Mark Otto committed
238
239
    &#9776;
  </button>
Mark Otto's avatar
Mark Otto committed
240
</nav>
Mark Otto's avatar
Mark Otto committed
241
{% endexample %}
Mark Otto's avatar
Mark Otto committed
242
243
244
245
246
247
248
249
250
251
252
253
254
255

For more complex navbar patterns, like those used in Bootstrap v3, use the `.navbar-toggleable-*` classes in conjunction with the `.navbar-toggler`. These classes override our responsive utilities to show navigation only when content is meant to be shown.

{% example html %}
<nav class="navbar navbar-default">
  <button class="navbar-toggler hidden-sm-up" type="button" data-toggle="collapse" data-target="#exCollapsingNavbar2">
    &#9776;
  </button>
  <div class="collapse navbar-toggleable-xs" id="exCollapsingNavbar2">
    <h4>Collapsed on xs devices</h4>
    <p>Toggleable via the navbar brand.</p>
  </div>
</nav>
{% endexample %}