navbar.md 9.89 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
---

7
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
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
## Basics
Mark Otto's avatar
Mark Otto committed
15
16
17

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

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

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

Mark Otto's avatar
Mark Otto committed
25
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
26

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

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

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

57
58
### Brand

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

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

67
<!-- As a heading -->
68
<nav class="navbar navbar-light bg-faded">
Mark Otto's avatar
Mark Otto committed
69
  <h1 class="navbar-brand m-b-0">Navbar</h1>
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
</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`.

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

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

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


111
## Color schemes
Mark Otto's avatar
Mark Otto committed
112

113
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
114

115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
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>
134
    <form class="form-inline pull-xs-right">
135
      <input class="form-control" type="text" placeholder="Search">
136
      <button class="btn btn-outline-info" type="submit">Search</button>
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
    </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>
155
    <form class="form-inline pull-xs-right">
156
      <input class="form-control" type="text" placeholder="Search">
157
      <button class="btn btn-outline-secondary" type="submit">Search</button>
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
    </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>
176
    <form class="form-inline pull-xs-right">
177
      <input class="form-control" type="text" placeholder="Search">
178
      <button class="btn btn-outline-primary" type="submit">Search</button>
179
180
181
182
183
184
185
    </form>
  </nav>
</div>

{% highlight html %}
<nav class="navbar navbar-dark bg-inverse">
  <!-- Navbar content -->
Mark Otto's avatar
Mark Otto committed
186
</nav>
187
188
189
190
191
192
193
194
195

<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
196

Mark Otto's avatar
Mark Otto committed
197
## Containers
198

199
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).
200

Mark Otto's avatar
Mark Otto committed
201
202
{% example html %}
<div class="container">
203
  <nav class="navbar navbar-light bg-faded">
Mark Otto's avatar
Mark Otto committed
204
    <a class="navbar-brand" href="#">Navbar</a>
205
206
  </nav>
</div>
Mark Otto's avatar
Mark Otto committed
207
{% endexample %}
208

Mark Otto's avatar
Mark Otto committed
209
{% example html %}
210
<nav class="navbar navbar-light bg-faded">
Mark Otto's avatar
Mark Otto committed
211
212
213
  <div class="container">
    <a class="navbar-brand" href="#">Navbar</a>
  </div>
214
</nav>
Mark Otto's avatar
Mark Otto committed
215
{% endexample %}
216

Mark Otto's avatar
Mark Otto committed
217
218
## Placement

219
220
221
222
223
224
225
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
226
227
228
229
230
231
232
233
234
235
236
237
238
239

{% 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
240
## Collapsible content
Mark Otto's avatar
Mark Otto committed
241

Mark Otto's avatar
Mark Otto committed
242
Our collapse plugin allows you to use a `<button>` or `<a>` to toggle hidden content.
Mark Otto's avatar
Mark Otto committed
243
244

{% example html %}
245
<nav class="navbar navbar-light bg-faded">
246
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#exCollapsingNavbar" aria-controls="exCollapsingNavbar" aria-expanded="false" aria-label="Toggle navigation">
Mark Otto's avatar
Mark Otto committed
247
248
    &#9776;
  </button>
249
  <div class="collapse" id="exCollapsingNavbar">
Mark Otto's avatar
Mark Otto committed
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
    <div class="bg-inverse text-muted p-a-1">
      <h4>Collapsed content</h4>
      <span class="text-muted">Toggleable via the navbar brand.</span>
    </div>
  </div>
</nav>
{% endexample %}

{% example html %}
<nav class="navbar navbar-dark bg-inverse">
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#exCollapsingNavbarDark" aria-controls="exCollapsingNavbarDark" aria-expanded="false" aria-label="Toggle navigation">
    &#9776;
  </button>
  <div class="collapse" id="exCollapsingNavbarDark">
    <div class="bg-inverse text-muted p-a-1">
265
266
267
268
      <h4>Collapsed content</h4>
      <span class="text-muted">Toggleable via the navbar brand.</span>
    </div>
  </div>
Mark Otto's avatar
Mark Otto committed
269
</nav>
Mark Otto's avatar
Mark Otto committed
270
{% endexample %}
Mark Otto's avatar
Mark Otto committed
271
272
273
274

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 %}
275
<nav class="navbar navbar-light bg-faded">
276
  <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">
Mark Otto's avatar
Mark Otto committed
277
278
279
    &#9776;
  </button>
  <div class="collapse navbar-toggleable-xs" id="exCollapsingNavbar2">
Mark Otto's avatar
Mark Otto committed
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
    <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
295
296
297
  </div>
</nav>
{% endexample %}