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

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
### Single button dropdowns

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

18
<div class="bd-example">
Mark Otto's avatar
Mark Otto committed
19
  <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
20
    <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Default</button>
Mark Otto's avatar
Mark Otto committed
21
22
23
24
25
26
27
28
29
    <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
30
    <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Primary</button>
Mark Otto's avatar
Mark Otto committed
31
32
33
34
35
36
37
38
39
    <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
40
    <button type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Success</button>
Mark Otto's avatar
Mark Otto committed
41
42
43
44
45
46
47
48
49
    <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
50
    <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Info</button>
Mark Otto's avatar
Mark Otto committed
51
52
53
54
55
56
57
58
59
    <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
60
    <button type="button" class="btn btn-warning dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Warning</button>
Mark Otto's avatar
Mark Otto committed
61
62
63
64
65
66
67
68
69
    <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
70
    <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-expanded="false">Danger</button>
Mark Otto's avatar
Mark Otto committed
71
72
73
74
75
76
77
78
79
    <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
80
81
82
83

{% highlight html %}
<!-- Single button -->
<div class="btn-group">
Mark Otto's avatar
Mark Otto committed
84
  <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
85
    Action
Mark Otto's avatar
Mark Otto committed
86
87
88
89
90
91
92
93
94
95
96
  </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
97
98
### Split button dropdowns

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

101
<div class="bd-example">
Mark Otto's avatar
Mark Otto committed
102
103
  <div class="btn-group">
    <button type="button" class="btn btn-secondary">Default</button>
Mark Otto's avatar
Mark Otto committed
104
    <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
105
106
107
108
109
110
111
112
113
114
115
116
      <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
117
    <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
118
119
120
121
122
123
124
125
126
127
128
129
      <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
130
    <button type="button" class="btn btn-success dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
131
132
133
134
135
136
137
138
139
140
141
142
      <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
143
    <button type="button" class="btn btn-info dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
144
145
146
147
148
149
150
151
152
153
154
155
      <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
156
    <button type="button" class="btn btn-warning dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
157
158
159
160
161
162
163
164
165
166
167
168
      <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
169
    <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
      <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
186
  <button type="button" class="btn btn-danger dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
    <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.

203
<div class="bd-example">
Mark Otto's avatar
Mark Otto committed
204
  <div class="btn-toolbar" role="toolbar">
Mark Otto's avatar
Mark Otto committed
205
    <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
206
      <button class="btn btn-secondary btn-lg dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
207
        Large button
Mark Otto's avatar
Mark Otto committed
208
209
210
211
212
213
214
215
216
      </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
217
218
  </div><!-- /btn-toolbar -->
  <div class="btn-toolbar" role="toolbar">
Mark Otto's avatar
Mark Otto committed
219
    <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
220
      <button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
221
        Small button
Mark Otto's avatar
Mark Otto committed
222
223
224
225
226
227
228
229
230
      </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
231
232
  </div><!-- /btn-toolbar -->
  <div class="btn-toolbar" role="toolbar">
Mark Otto's avatar
Mark Otto committed
233
    <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
234
      <button class="btn btn-secondary btn-xs dropdown-toggle" type="button" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
235
        Extra small button
Mark Otto's avatar
Mark Otto committed
236
237
238
239
240
241
242
243
244
      </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
245
246
  </div><!-- /btn-toolbar -->
</div><!-- /example -->
Mark Otto's avatar
Mark Otto committed
247
248
249
250

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

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

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

Mark Otto's avatar
Mark Otto committed
280
281
282
283
### Dropup variation

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

284
<div class="bd-example">
Mark Otto's avatar
Mark Otto committed
285
286
287
  <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
288
      <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
289
290
291
292
293
294
295
296
297
298
299
300
        <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
301
      <button type="button" class="btn btn-primary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
302
303
304
305
306
307
308
309
310
311
312
313
314
        <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
315
316
{% highlight html %}
<div class="btn-group dropup">
Mark Otto's avatar
Mark Otto committed
317
  <button type="button" class="btn btn-secondary">Dropup</button>
Mark Otto's avatar
Mark Otto committed
318
  <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
Mark Otto's avatar
Mark Otto committed
319
320
    <span class="sr-only">Toggle Dropdown</span>
  </button>
321
  <ul class="dropdown-menu" role="menu">
Mark Otto's avatar
Mark Otto committed
322
323
324
325
    <!-- Dropdown menu links -->
  </ul>
</div>
{% endhighlight %}