button-dropdown.md 12.6 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

8
9
10
11
12
{% callout danger %}
#### Plugin dependency

Button dropdowns require the [dropdown plugin](../javascript/#dropdowns) to be included in your version of Bootstrap.
{% endcallout %}
Mark Otto's avatar
Mark Otto committed
13

Mark Otto's avatar
Mark Otto committed
14
15
16
17
18
## Contents

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

Mark Otto's avatar
Mark Otto committed
19
20
21
22
### Single button dropdowns

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

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

{% highlight html %}
<!-- Single button -->
<div class="btn-group">
Mark Otto's avatar
Mark Otto committed
89
  <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
90
    Action
Mark Otto's avatar
Mark Otto committed
91
  </button>
Mark Otto's avatar
Mark Otto committed
92
  <ul class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
93
94
95
    <li><a href="#">Action</a></li>
    <li><a href="#">Another action</a></li>
    <li><a href="#">Something else here</a></li>
Mark Otto's avatar
Mark Otto committed
96
    <li role="separator" class="divider"></li>
Mark Otto's avatar
Mark Otto committed
97
98
99
100
101
    <li><a href="#">Separated link</a></li>
  </ul>
</div>
{% endhighlight %}

Mark Otto's avatar
Mark Otto committed
102
103
### Split button dropdowns

Mark Otto's avatar
typo    
Mark Otto committed
104
Similarly, create split button dropdowns with the same markup changes, only with a separate button.
Mark Otto's avatar
Mark Otto committed
105

106
<div class="bd-example">
Mark Otto's avatar
Mark Otto committed
107
108
  <div class="btn-group">
    <button type="button" class="btn btn-secondary">Default</button>
Mark Otto's avatar
Mark Otto committed
109
    <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
110
111
      <span class="sr-only">Toggle Dropdown</span>
    </button>
Mark Otto's avatar
Mark Otto committed
112
    <ul class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
113
114
115
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
Mark Otto's avatar
Mark Otto committed
116
      <li role="separator" class="divider"></li>
Mark Otto's avatar
Mark Otto committed
117
118
119
120
121
      <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
122
    <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
123
124
      <span class="sr-only">Toggle Dropdown</span>
    </button>
Mark Otto's avatar
Mark Otto committed
125
    <ul class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
126
127
128
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
Mark Otto's avatar
Mark Otto committed
129
      <li role="separator" class="divider"></li>
Mark Otto's avatar
Mark Otto committed
130
131
132
133
134
      <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
135
    <button type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
136
137
      <span class="sr-only">Toggle Dropdown</span>
    </button>
Mark Otto's avatar
Mark Otto committed
138
    <ul class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
139
140
141
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
Mark Otto's avatar
Mark Otto committed
142
      <li role="separator" class="divider"></li>
Mark Otto's avatar
Mark Otto committed
143
144
145
146
147
      <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
148
    <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
149
150
      <span class="sr-only">Toggle Dropdown</span>
    </button>
Mark Otto's avatar
Mark Otto committed
151
    <ul class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
152
153
154
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
Mark Otto's avatar
Mark Otto committed
155
      <li role="separator" class="divider"></li>
Mark Otto's avatar
Mark Otto committed
156
157
158
159
160
      <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
161
    <button type="button" class="btn btn-warning dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
162
163
      <span class="sr-only">Toggle Dropdown</span>
    </button>
Mark Otto's avatar
Mark Otto committed
164
    <ul class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
165
166
167
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
Mark Otto's avatar
Mark Otto committed
168
      <li role="separator" class="divider"></li>
Mark Otto's avatar
Mark Otto committed
169
170
171
172
173
      <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
174
    <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
175
176
      <span class="sr-only">Toggle Dropdown</span>
    </button>
Mark Otto's avatar
Mark Otto committed
177
    <ul class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
178
179
180
      <li><a href="#">Action</a></li>
      <li><a href="#">Another action</a></li>
      <li><a href="#">Something else here</a></li>
Mark Otto's avatar
Mark Otto committed
181
      <li role="separator" class="divider"></li>
Mark Otto's avatar
Mark Otto committed
182
183
184
185
186
187
188
189
190
      <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
191
  <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
192
193
    <span class="sr-only">Toggle Dropdown</span>
  </button>
Mark Otto's avatar
Mark Otto committed
194
  <ul class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
195
196
197
    <li><a href="#">Action</a></li>
    <li><a href="#">Another action</a></li>
    <li><a href="#">Something else here</a></li>
Mark Otto's avatar
Mark Otto committed
198
    <li role="separator" class="divider"></li>
Mark Otto's avatar
Mark Otto committed
199
200
201
202
203
204
205
206
207
    <li><a href="#">Separated link</a></li>
  </ul>
</div>
{% endhighlight %}

### Sizing

Button dropdowns work with buttons of all sizes.

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

{% highlight html %}
<!-- Large button group -->
<div class="btn-group">
Mark Otto's avatar
Mark Otto committed
256
  <button class="btn btn-secondary btn-lg dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
257
    Large button
Mark Otto's avatar
Mark Otto committed
258
  </button>
Mark Otto's avatar
Mark Otto committed
259
  <ul class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
260
261
262
263
264
265
    ...
  </ul>
</div>

<!-- Small button group -->
<div class="btn-group">
Mark Otto's avatar
Mark Otto committed
266
  <button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
267
    Small button
Mark Otto's avatar
Mark Otto committed
268
  </button>
Mark Otto's avatar
Mark Otto committed
269
  <ul class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
270
271
272
273
274
275
    ...
  </ul>
</div>

<!-- Extra small button group -->
<div class="btn-group">
Mark Otto's avatar
Mark Otto committed
276
  <button class="btn btn-secondary btn-xs dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
277
    Extra small button
Mark Otto's avatar
Mark Otto committed
278
  </button>
Mark Otto's avatar
Mark Otto committed
279
  <ul class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
280
281
282
283
284
    ...
  </ul>
</div>
{% endhighlight %}

Mark Otto's avatar
Mark Otto committed
285
286
287
288
### Dropup variation

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

289
<div class="bd-example">
Mark Otto's avatar
Mark Otto committed
290
291
292
  <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
293
      <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
294
295
        <span class="sr-only">Toggle Dropdown</span>
      </button>
Mark Otto's avatar
Mark Otto committed
296
      <ul class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
297
298
299
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
Mark Otto's avatar
Mark Otto committed
300
        <li role="separator" class="divider"></li>
Mark Otto's avatar
Mark Otto committed
301
302
303
304
305
        <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
306
      <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
307
308
        <span class="sr-only">Toggle Dropdown</span>
      </button>
Mark Otto's avatar
Mark Otto committed
309
      <ul class="dropdown-menu dropdown-menu-right">
Mark Otto's avatar
Mark Otto committed
310
311
312
        <li><a href="#">Action</a></li>
        <li><a href="#">Another action</a></li>
        <li><a href="#">Something else here</a></li>
Mark Otto's avatar
Mark Otto committed
313
        <li role="separator" class="divider"></li>
Mark Otto's avatar
Mark Otto committed
314
315
316
317
318
319
        <li><a href="#">Separated link</a></li>
      </ul>
    </div><!-- /btn-group -->
  </div>
</div>

Mark Otto's avatar
Mark Otto committed
320
321
{% highlight html %}
<div class="btn-group dropup">
Mark Otto's avatar
Mark Otto committed
322
  <button type="button" class="btn btn-secondary">Dropup</button>
Mark Otto's avatar
Mark Otto committed
323
  <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
324
325
    <span class="sr-only">Toggle Dropdown</span>
  </button>
Mark Otto's avatar
Mark Otto committed
326
  <ul class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
327
328
329
330
    <!-- Dropdown menu links -->
  </ul>
</div>
{% endhighlight %}