button-dropdown.md 12 KB
Newer Older
Mark Otto's avatar
Mark Otto committed
1
2
3
4
5
---
layout: page
title: Button dropdown
---

6
Use any button to trigger a dropdown menu by placing it within a `.btn-group` and providing the proper dropdown menu markup.
Mark Otto's avatar
Mark Otto committed
7

Mark Otto's avatar
Mark Otto committed
8
9
10
11
<div class="bs-callout bs-callout-danger">
  <h4>Plugin dependency</h4>
  <p>Button dropdowns require the <a href="../javascript/#dropdowns">dropdown plugin</a> to be included in your version of Bootstrap.</p>
</div>
Mark Otto's avatar
Mark Otto committed
12

Mark Otto's avatar
Mark Otto committed
13
14
15
16
17
18
### Single button dropdowns

Turn a button into a dropdown toggle with some basic markup changes.

<div class="bs-example">
  <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
19
    <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Default</button>
Mark Otto's avatar
Mark Otto committed
20
21
22
23
24
25
26
27
28
    <ul class="dropdown-menu" role="menu">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li class="divider"></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </div><!-- /btn-group -->
  <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
29
    <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Primary</button>
Mark Otto's avatar
Mark Otto committed
30
31
32
33
34
35
36
37
38
    <ul class="dropdown-menu" role="menu">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li class="divider"></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </div><!-- /btn-group -->
  <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
39
    <button type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Success</button>
Mark Otto's avatar
Mark Otto committed
40
41
42
43
44
45
46
47
48
    <ul class="dropdown-menu" role="menu">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li class="divider"></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </div><!-- /btn-group -->
  <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
49
    <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Info</button>
Mark Otto's avatar
Mark Otto committed
50
51
52
53
54
55
56
57
58
    <ul class="dropdown-menu" role="menu">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li class="divider"></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </div><!-- /btn-group -->
  <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
59
    <button type="button" class="btn btn-warning dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Warning</button>
Mark Otto's avatar
Mark Otto committed
60
61
62
63
64
65
66
67
68
    <ul class="dropdown-menu" role="menu">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li class="divider"></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </div><!-- /btn-group -->
  <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
69
    <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Danger</button>
Mark Otto's avatar
Mark Otto committed
70
71
72
73
74
75
76
77
78
    <ul class="dropdown-menu" role="menu">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li class="divider"></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </div><!-- /btn-group -->
</div>
Mark Otto's avatar
Mark Otto committed
79
80
81
82

{% highlight html %}
<!-- Single button -->
<div class="btn-group">
Mark Otto's avatar
Mark Otto committed
83
  <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
84
    Action
Mark Otto's avatar
Mark Otto committed
85
86
87
88
89
90
91
92
93
94
95
  </button>
  <ul class="dropdown-menu" role="menu">
    <li><a href="#">Action</a></li>
    <li><a href="#">Another action</a></li>
    <li><a href="#">Something else here</a></li>
    <li class="divider"></li>
    <li><a href="#">Separated link</a></li>
  </ul>
</div>
{% endhighlight %}

Mark Otto's avatar
Mark Otto committed
96
97
### Split button dropdowns

Mark Otto's avatar
typo    
Mark Otto committed
98
Similarly, create split button dropdowns with the same markup changes, only with a separate button.
Mark Otto's avatar
Mark Otto committed
99
100
101
102

<div class="bs-example">
  <div class="btn-group">
    <button type="button" class="btn btn-secondary">Default</button>
Mark Otto's avatar
Mark Otto committed
103
    <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
104
105
106
107
108
109
110
111
112
113
114
115
      <span class="sr-only">Toggle Dropdown</span>
    </button>
    <ul class="dropdown-menu" role="menu">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li class="divider"></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </div><!-- /btn-group -->
  <div class="btn-group">
    <button type="button" class="btn btn-primary">Primary</button>
Mark Otto's avatar
Mark Otto committed
116
    <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
117
118
119
120
121
122
123
124
125
126
127
128
      <span class="sr-only">Toggle Dropdown</span>
    </button>
    <ul class="dropdown-menu" role="menu">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li class="divider"></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </div><!-- /btn-group -->
  <div class="btn-group">
    <button type="button" class="btn btn-success">Success</button>
Mark Otto's avatar
Mark Otto committed
129
    <button type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
130
131
132
133
134
135
136
137
138
139
140
141
      <span class="sr-only">Toggle Dropdown</span>
    </button>
    <ul class="dropdown-menu" role="menu">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li class="divider"></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </div><!-- /btn-group -->
  <div class="btn-group">
    <button type="button" class="btn btn-info">Info</button>
Mark Otto's avatar
Mark Otto committed
142
    <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
143
144
145
146
147
148
149
150
151
152
153
154
      <span class="sr-only">Toggle Dropdown</span>
    </button>
    <ul class="dropdown-menu" role="menu">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li class="divider"></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </div><!-- /btn-group -->
  <div class="btn-group">
    <button type="button" class="btn btn-warning">Warning</button>
Mark Otto's avatar
Mark Otto committed
155
    <button type="button" class="btn btn-warning dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
156
157
158
159
160
161
162
163
164
165
166
167
      <span class="sr-only">Toggle Dropdown</span>
    </button>
    <ul class="dropdown-menu" role="menu">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li class="divider"></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </div><!-- /btn-group -->
  <div class="btn-group">
    <button type="button" class="btn btn-danger">Danger</button>
Mark Otto's avatar
Mark Otto committed
168
    <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
      <span class="sr-only">Toggle Dropdown</span>
    </button>
    <ul class="dropdown-menu" role="menu">
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
      <li class="divider"></li>
      <li><a href="#">Separated link</a></li>
    </ul>
  </div><!-- /btn-group -->
</div>

{% highlight html %}
<!-- Split button -->
<div class="btn-group">
  <button type="button" class="btn btn-danger">Action</button>
Mark Otto's avatar
Mark Otto committed
185
  <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
    <span class="sr-only">Toggle Dropdown</span>
  </button>
  <ul class="dropdown-menu" role="menu">
    <li><a href="#">Action</a></li>
    <li><a href="#">Another action</a></li>
    <li><a href="#">Something else here</a></li>
    <li class="divider"></li>
    <li><a href="#">Separated link</a></li>
  </ul>
</div>
{% endhighlight %}

### Sizing

Button dropdowns work with buttons of all sizes.

<div class="bs-example">
  <div class="btn-toolbar" role="toolbar">
Mark Otto's avatar
Mark Otto committed
204
    <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
205
      <button class="btn btn-secondary btn-lg dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
206
        Large button
Mark Otto's avatar
Mark Otto committed
207
208
209
210
211
212
213
214
215
      </button>
      <ul class="dropdown-menu" role="menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
      </ul>
    </div><!-- /btn-group -->
Mark Otto's avatar
Mark Otto committed
216
217
  </div><!-- /btn-toolbar -->
  <div class="btn-toolbar" role="toolbar">
Mark Otto's avatar
Mark Otto committed
218
    <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
219
      <button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
220
        Small button
Mark Otto's avatar
Mark Otto committed
221
222
223
224
225
226
227
228
229
      </button>
      <ul class="dropdown-menu" role="menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
      </ul>
    </div><!-- /btn-group -->
Mark Otto's avatar
Mark Otto committed
230
231
  </div><!-- /btn-toolbar -->
  <div class="btn-toolbar" role="toolbar">
Mark Otto's avatar
Mark Otto committed
232
    <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
233
      <button class="btn btn-secondary btn-xs dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
234
        Extra small button
Mark Otto's avatar
Mark Otto committed
235
236
237
238
239
240
241
242
243
      </button>
      <ul class="dropdown-menu" role="menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
      </ul>
    </div><!-- /btn-group -->
Mark Otto's avatar
Mark Otto committed
244
245
  </div><!-- /btn-toolbar -->
</div><!-- /example -->
Mark Otto's avatar
Mark Otto committed
246
247
248
249

{% highlight html %}
<!-- Large button group -->
<div class="btn-group">
Mark Otto's avatar
Mark Otto committed
250
  <button class="btn btn-secondary btn-lg dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
251
    Large button
Mark Otto's avatar
Mark Otto committed
252
  </button>
253
  <ul class="dropdown-menu" role="menu">
Mark Otto's avatar
Mark Otto committed
254
255
256
257
258
259
    ...
  </ul>
</div>

<!-- Small button group -->
<div class="btn-group">
Mark Otto's avatar
Mark Otto committed
260
  <button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
261
    Small button
Mark Otto's avatar
Mark Otto committed
262
  </button>
263
  <ul class="dropdown-menu" role="menu">
Mark Otto's avatar
Mark Otto committed
264
265
266
267
268
269
    ...
  </ul>
</div>

<!-- Extra small button group -->
<div class="btn-group">
Mark Otto's avatar
Mark Otto committed
270
  <button class="btn btn-secondary btn-xs dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
271
    Extra small button
Mark Otto's avatar
Mark Otto committed
272
  </button>
273
  <ul class="dropdown-menu" role="menu">
Mark Otto's avatar
Mark Otto committed
274
275
276
277
278
    ...
  </ul>
</div>
{% endhighlight %}

Mark Otto's avatar
Mark Otto committed
279
280
281
282
283
284
285
286
### Dropup variation

Trigger dropdown menus above elements by adding `.dropup` to the parent.

<div class="bs-example">
  <div class="btn-toolbar" role="toolbar">
    <div class="btn-group dropup">
      <button type="button" class="btn btn-secondary">Dropup</button>
Mark Otto's avatar
Mark Otto committed
287
      <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
288
289
290
291
292
293
294
295
296
297
298
299
        <span class="sr-only">Toggle Dropdown</span>
      </button>
      <ul class="dropdown-menu" role="menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
      </ul>
    </div><!-- /btn-group -->
    <div class="btn-group dropup">
      <button type="button" class="btn btn-primary">Right dropup</button>
Mark Otto's avatar
Mark Otto committed
300
      <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
301
302
303
304
305
306
307
308
309
310
311
312
313
        <span class="sr-only">Toggle Dropdown</span>
      </button>
      <ul class="dropdown-menu dropdown-menu-right" role="menu">
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
        <li class="divider"></li>
        <li><a href="#">Separated link</a></li>
      </ul>
    </div><!-- /btn-group -->
  </div>
</div>

Mark Otto's avatar
Mark Otto committed
314
315
{% highlight html %}
<div class="btn-group dropup">
Mark Otto's avatar
Mark Otto committed
316
  <button type="button" class="btn btn-secondary">Dropup</button>
Mark Otto's avatar
Mark Otto committed
317
  <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
318
319
    <span class="sr-only">Toggle Dropdown</span>
  </button>
320
  <ul class="dropdown-menu" role="menu">
Mark Otto's avatar
Mark Otto committed
321
322
323
324
    <!-- Dropdown menu links -->
  </ul>
</div>
{% endhighlight %}