navbar.md 11.6 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
Mark Otto's avatar
Mark Otto committed
4
description: Documentation and examples for Bootstrap's powerful, responsive navigation header.
5
group: components
Mark Otto's avatar
Mark Otto committed
6
7
---

8
The navbar is a simple wrapper for positioning branding, navigation, and other elements into a concise navigation header. 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
9

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

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

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

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

19
- Navbars require a wrapping `.navbar` and a [color scheme](#color-schemes).
Mark Otto's avatar
Mark Otto committed
20
- Navbars and their contents are fluid by default. Use [optional containers](#containers) to limit their horizontal width.
21
- Use `.pull-*-left` and `.pull-*-right` to quickly align sub-components.
Mark Otto's avatar
Mark Otto committed
22
- 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
23

Mark Otto's avatar
Mark Otto committed
24
## Supported content
Mark Otto's avatar
Mark Otto committed
25

Mark Otto's avatar
Mark Otto committed
26
Navbars come with built-in support for a handful of sub-components. Mix and match from the following as you need:
Mark Otto's avatar
Mark Otto committed
27

Mark Otto's avatar
Mark Otto committed
28
29
- `.navbar-brand` for your company, product, or project name
- `.navbar-nav` for a full-height and lightweight navigation (including support for dropdowns)
30
- `.navbar-toggler` for use with our collapse plugin and other [navigation toggling](#collapsible-content) behaviors.
Mark Otto's avatar
Mark Otto committed
31

Mark Otto's avatar
Mark Otto committed
32
Here's an example of all the sub-components included in a default, light navbar:
Mark Otto's avatar
Mark Otto committed
33

Mark Otto's avatar
Mark Otto committed
34
{% example html %}
35
<nav class="navbar navbar-light bg-faded">
Mark Otto's avatar
Mark Otto committed
36
37
  <a class="navbar-brand" href="#">Navbar</a>
  <ul class="nav navbar-nav">
Mark Otto's avatar
Mark Otto committed
38
    <li class="nav-item active">
Mark Otto's avatar
Mark Otto committed
39
      <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
Mark Otto's avatar
Mark Otto committed
40
41
42
43
44
45
46
47
48
49
50
    </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>
51
  <form class="form-inline float-xs-right">
Mark Otto's avatar
Mark Otto committed
52
    <input class="form-control" type="text" placeholder="Search">
53
    <button class="btn btn-outline-success" type="submit">Search</button>
Mark Otto's avatar
Mark Otto committed
54
  </form>
Mark Otto's avatar
Mark Otto committed
55
</nav>
Mark Otto's avatar
Mark Otto committed
56
57
{% endexample %}

58
59
### Brand

Mark Otto's avatar
Mark Otto committed
60
The `.navbar-brand` can be applied to most elements, but an anchor works best as some elements might require utility classes or custom styles.
61
62

{% example html %}
63
<!-- As a link -->
64
65
66
67
<nav class="navbar navbar-light bg-faded">
  <a class="navbar-brand" href="#">Navbar</a>
</nav>

68
<!-- As a heading -->
69
<nav class="navbar navbar-light bg-faded">
70
  <h1 class="navbar-brand mb-0">Navbar</h1>
71
72
73
74
75
76
77
</nav>
{% endexample %}

### Nav

Navbar navigation is similar to our regular nav options—use the `.nav` base class with a modifier to achieve a particular look. In this case you'll want `.nav.navbar-nav`.

78
79
Active states—with `.active`—to indicate the current page can be applied directly to `.nav-link`s or their immediate parent `.nav-item`s.

80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
{% 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">
      <a class="nav-link" href="#">About</a>
    </li>
  </ul>
</nav>
{% endexample %}

99
And because we use classes for our navs, you can avoid the list-based approach entirely if you like.
100
101
102
103
104
105
106
107
108
109
110
111

{% 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>
    <a class="nav-item nav-link" href="#">About</a>
  </div>
</nav>
{% endexample %}

112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
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">
127
      <a class="nav-link dropdown-toggle" href="http://example.com" id="navbarDropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
128
129
130
131
132
133
134
135
136
137
138
139
        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 %}

140
141
142
143
144
145
### 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">
146
147
148
  <span class="navbar-text">
    Navbar text with an inline element
  </span>
149
150
151
</nav>
{% endexample %}

152
Using our utility classes, you can change the alignment and appearance of your navbar text.
153
154
155

{% example html %}
<nav class="navbar navbar-light bg-faded">
156
157
158
  <span class="navbar-text pull-xs-right text-muted">
    Muted navbar text that's floated right
  </span>
159
160
161
</nav>
{% endexample %}

162
163
164
165
166
167
168
169
170
171
Similarly, you can use utility classes to align navbar text to other navbar elements like the brand and navigation (which are automatically floated already).

{% example html %}
<nav class="navbar navbar-light bg-faded">
  <a class="navbar-brand" href="#">Navbar</a>
  <span class="navbar-text pull-xs-left">
    Navbar text that's floated left
  </span>
</nav>
{% endexample %}
172

173
## Color schemes
Mark Otto's avatar
Mark Otto committed
174

175
Theming the navbar has never been easier thanks to the combination of a simple link color modifier class and `background-color` utilities. Put another way, you specify light or dark and apply a background color.
Mark Otto's avatar
Mark Otto committed
176

177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
Here are some examples to show what we mean.

<div class="bd-example">
  <nav class="navbar navbar-dark bg-inverse">
    <a class="navbar-brand" href="#">Navbar</a>
    <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>
196
    <form class="form-inline float-xs-right">
197
      <input class="form-control" type="text" placeholder="Search">
198
      <button class="btn btn-outline-info" type="submit">Search</button>
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
    </form>
  </nav>
  <nav class="navbar navbar-dark bg-primary">
    <a class="navbar-brand" href="#">Navbar</a>
    <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>
217
    <form class="form-inline float-xs-right">
218
      <input class="form-control" type="text" placeholder="Search">
219
      <button class="btn btn-outline-secondary" type="submit">Search</button>
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
    </form>
  </nav>
  <nav class="navbar navbar-light" style="background-color: #e3f2fd;">
    <a class="navbar-brand" href="#">Navbar</a>
    <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>
238
    <form class="form-inline float-xs-right">
239
      <input class="form-control" type="text" placeholder="Search">
240
      <button class="btn btn-outline-primary" type="submit">Search</button>
241
242
243
244
245
246
247
    </form>
  </nav>
</div>

{% highlight html %}
<nav class="navbar navbar-dark bg-inverse">
  <!-- Navbar content -->
Mark Otto's avatar
Mark Otto committed
248
</nav>
249
250
251
252
253
254
255
256
257

<nav class="navbar navbar-dark bg-primary">
  <!-- Navbar content -->
</nav>

<nav class="navbar navbar-light" style="background-color: #e3f2fd;">
  <!-- Navbar content -->
</nav>
{% endhighlight %}
Mark Otto's avatar
Mark Otto committed
258

Mark Otto's avatar
Mark Otto committed
259
## Containers
260

261
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).
262

Mark Otto's avatar
Mark Otto committed
263
264
{% example html %}
<div class="container">
265
  <nav class="navbar navbar-light bg-faded">
Mark Otto's avatar
Mark Otto committed
266
    <a class="navbar-brand" href="#">Navbar</a>
267
268
  </nav>
</div>
Mark Otto's avatar
Mark Otto committed
269
{% endexample %}
270

Mark Otto's avatar
Mark Otto committed
271
{% example html %}
272
<nav class="navbar navbar-light bg-faded">
Mark Otto's avatar
Mark Otto committed
273
274
275
  <div class="container">
    <a class="navbar-brand" href="#">Navbar</a>
  </div>
276
</nav>
Mark Otto's avatar
Mark Otto committed
277
{% endexample %}
278

Mark Otto's avatar
Mark Otto committed
279
280
## Placement

281
282
283
284
285
286
287
Navbars can be statically placed (their default behavior), static without rounded corners, or fixed to the top or bottom of the viewport.

{% example html %}
<nav class="navbar navbar-full navbar-light bg-faded">
  <a class="navbar-brand" href="#">Full width</a>
</nav>
{% endexample %}
Mark Otto's avatar
Mark Otto committed
288
289
290
291
292
293
294
295
296
297
298
299
300
301

{% 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 %}


Mark Otto's avatar
Mark Otto committed
302
## Collapsible content
Mark Otto's avatar
Mark Otto committed
303

Mark Otto's avatar
Mark Otto committed
304
Our collapse plugin allows you to use a `<button>` or `<a>` to toggle hidden content.
Mark Otto's avatar
Mark Otto committed
305
306

{% example html %}
307
<nav class="navbar navbar-light bg-faded">
308
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#exCollapsingNavbar" aria-controls="exCollapsingNavbar" aria-expanded="false" aria-label="Toggle navigation"></button>
309
  <div class="collapse" id="exCollapsingNavbar">
310
    <div class="bg-inverse text-muted p-1">
311
312
313
314
      <h4>Collapsed content</h4>
      <span class="text-muted">Toggleable via the navbar brand.</span>
    </div>
  </div>
Mark Otto's avatar
Mark Otto committed
315
</nav>
Mark Otto's avatar
Mark Otto committed
316
{% endexample %}
Mark Otto's avatar
Mark Otto committed
317
318
319
320

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 %}
321
<nav class="navbar navbar-light bg-faded">
322
  <button class="navbar-toggler hidden-sm-up" type="button" data-toggle="collapse" data-target="#exCollapsingNavbar2" aria-controls="exCollapsingNavbar2" aria-expanded="false" aria-label="Toggle navigation"></button>
Mark Otto's avatar
Mark Otto committed
323
  <div class="collapse navbar-toggleable-xs" id="exCollapsingNavbar2">
Mark Otto's avatar
Mark Otto committed
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
    <a class="navbar-brand" href="#">Responsive navbar</a>
    <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>
Mark Otto's avatar
Mark Otto committed
339
340
341
  </div>
</nav>
{% endexample %}