button-dropdown.md 12.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: Button dropdown
4
group: components
Mark Otto's avatar
Mark Otto committed
5
6
---

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

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

Heinrich Fenkart's avatar
Heinrich Fenkart committed
12
Button dropdowns require the [dropdown plugin]({{ site.baseurl }}/components/dropdowns/) to be included in your version of Bootstrap.
13
{% endcallout %}
Mark Otto's avatar
Mark Otto committed
14

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

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

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

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

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

{% highlight html %}
<!-- Single button -->
<div class="btn-group">
Mark Otto's avatar
Mark Otto committed
90
  <button type="button" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
91
    Action
Mark Otto's avatar
Mark Otto committed
92
  </button>
Mark Otto's avatar
Mark Otto committed
93
94
95
96
97
98
99
  <div class="dropdown-menu">
    <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 class="dropdown-divider"></div>
    <a class="dropdown-item" href="#">Separated link</a>
  </div>
Mark Otto's avatar
Mark Otto committed
100
101
102
</div>
{% endhighlight %}

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

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

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

### Sizing

Button dropdowns work with buttons of all sizes.

209
<div class="bd-example">
Mark Otto's avatar
Mark Otto committed
210
  <div class="btn-toolbar" role="toolbar">
Mark Otto's avatar
Mark Otto committed
211
    <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
212
      <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
213
        Large button
Mark Otto's avatar
Mark Otto committed
214
      </button>
Mark Otto's avatar
Mark Otto committed
215
216
217
218
219
220
221
      <div class="dropdown-menu">
        <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 class="dropdown-divider"></div>
        <a class="dropdown-item" href="#">Separated link</a>
      </div>
Mark Otto's avatar
Mark Otto committed
222
    </div><!-- /btn-group -->
Mark Otto's avatar
Mark Otto committed
223
224
  </div><!-- /btn-toolbar -->
  <div class="btn-toolbar" role="toolbar">
Mark Otto's avatar
Mark Otto committed
225
    <div class="btn-group">
Mark Otto's avatar
Mark Otto committed
226
      <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
227
        Small button
Mark Otto's avatar
Mark Otto committed
228
      </button>
Mark Otto's avatar
Mark Otto committed
229
230
231
232
233
234
235
      <div class="dropdown-menu">
        <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 class="dropdown-divider"></div>
        <a class="dropdown-item" href="#">Separated link</a>
      </div>
Mark Otto's avatar
Mark Otto committed
236
    </div><!-- /btn-group -->
Mark Otto's avatar
Mark Otto committed
237
238
  </div><!-- /btn-toolbar -->
</div><!-- /example -->
Mark Otto's avatar
Mark Otto committed
239
240
241
242

{% highlight html %}
<!-- Large button group -->
<div class="btn-group">
Mark Otto's avatar
Mark Otto committed
243
  <button class="btn btn-secondary btn-lg dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
244
    Large button
Mark Otto's avatar
Mark Otto committed
245
  </button>
Mark Otto's avatar
Mark Otto committed
246
  <div class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
247
    ...
Mark Otto's avatar
Mark Otto committed
248
  </div>
Mark Otto's avatar
Mark Otto committed
249
250
251
252
</div>

<!-- Small button group -->
<div class="btn-group">
Mark Otto's avatar
Mark Otto committed
253
  <button class="btn btn-secondary btn-sm dropdown-toggle" type="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
254
    Small button
Mark Otto's avatar
Mark Otto committed
255
  </button>
Mark Otto's avatar
Mark Otto committed
256
  <div class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
257
    ...
Mark Otto's avatar
Mark Otto committed
258
  </div>
Mark Otto's avatar
Mark Otto committed
259
260
261
</div>
{% endhighlight %}

Mark Otto's avatar
Mark Otto committed
262
263
264
265
### Dropup variation

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

266
<div class="bd-example">
Mark Otto's avatar
Mark Otto committed
267
268
269
  <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
270
      <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
271
272
        <span class="sr-only">Toggle Dropdown</span>
      </button>
Mark Otto's avatar
Mark Otto committed
273
274
275
276
277
278
279
      <div class="dropdown-menu">
        <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 class="dropdown-divider"></div>
        <a class="dropdown-item" href="#">Separated link</a>
      </div>
Mark Otto's avatar
Mark Otto committed
280
281
282
    </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
283
      <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
284
285
        <span class="sr-only">Toggle Dropdown</span>
      </button>
Mark Otto's avatar
Mark Otto committed
286
287
288
289
290
291
292
      <div class="dropdown-menu dropdown-menu-right">
        <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 class="dropdown-divider"></div>
        <a class="dropdown-item" href="#">Separated link</a>
      </div>
Mark Otto's avatar
Mark Otto committed
293
294
295
296
    </div><!-- /btn-group -->
  </div>
</div>

Mark Otto's avatar
Mark Otto committed
297
298
{% highlight html %}
<div class="btn-group dropup">
Mark Otto's avatar
Mark Otto committed
299
  <button type="button" class="btn btn-secondary">Dropup</button>
Mark Otto's avatar
Mark Otto committed
300
  <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
301
302
    <span class="sr-only">Toggle Dropdown</span>
  </button>
Mark Otto's avatar
Mark Otto committed
303
  <div class="dropdown-menu">
Mark Otto's avatar
Mark Otto committed
304
    <!-- Dropdown menu links -->
Mark Otto's avatar
Mark Otto committed
305
  </div>
Mark Otto's avatar
Mark Otto committed
306
307
</div>
{% endhighlight %}