Performance: Split button dropdowns
Split button dropdowns affect page interactivity and rendering speed by adding extra DOM elements and event listeners.
<div class="btn-group"> <button type="button" class="btn btn-primary" id="mainAction">Action</button> <button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" aria-haspopup="true" aria-expanded="false" aria-label="Toggle Dropdown" data-bs-toggle="dropdown"></button> <ul class="dropdown-menu" aria-labelledby="mainAction"> <li><button class="dropdown-item" type="button">Option 1</button></li> <li><button class="dropdown-item" type="button">Option 2</button></li> </ul> </div>
<div class="btn-group"> <button type="button" class="btn btn-primary">Action</button> <button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false"></button> <ul class="dropdown-menu"> <li><a class="dropdown-item" href="#">Option 1</a></li> <li><a class="dropdown-item" href="#">Option 2</a></li> </ul> </div>
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Split button with multiple buttons and dropdown | High (multiple buttons + menu items) | 3+ on open | Medium (dropdown repaint) | [X] Bad |
| Split button with semantic buttons and ARIA, minimal DOM | Low (few buttons + menu items) | 1 on open | Low (transform-based animation) | [OK] Good |
split button dropdown in Bootstrap?dropdown-toggle to mark the button that toggles the dropdown menu.dropdown-toggle to work properly.<div class="btn-group">
<button type="button" class="btn btn-primary">Save</button>
<button type="button" class="btn btn-primary dropdown-toggle dropdown-toggle-split" data-bs-toggle="dropdown" aria-expanded="false">
<span class="visually-hidden">Toggle Dropdown</span>
</button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Save as Draft</a></li>
<li><a class="dropdown-item" href="#">Save and Publish</a></li>
</ul>
</div><div class="btn-group">
<button class="btn btn-secondary">Options</button>
<button class="btn btn-secondary dropdown-toggle dropdown-toggle-split" data-toggle="dropdown"></button>
<ul class="dropdown-menu">
<li><a class="dropdown-item" href="#">Action 1</a></li>
</ul>
</div>data-bs-toggle instead of data-toggle to activate dropdowns.data-toggle="dropdown", which is from Bootstrap 4 and will not work in Bootstrap 5.type='submit' inside the form element.data-bs-toggle='dropdown' to show alternative submission choices without submitting immediately.Pass the test and this pattern moves unknown