🔽 Bootstrap 5 – Select Menus: Style Dropdowns with .form-select
🧲 Introduction – What Are Select Menus in Bootstrap 5?
Select menus in Bootstrap 5 are dropdown fields used in forms to allow users to choose a single (or multiple) option(s) from a list. Unlike regular text inputs, these controls are ideal when input needs to be constrained to a set of predefined choices.
Bootstrap offers a dedicated .form-select class to style native <select> elements for better UX, accessibility, and consistency across devices.
🎯 In this guide, you’ll learn:
- How to create single and multiple select menus
- Customize select size and appearance
- Combine selects with form layouts and validation
- Enhance selects for mobile and accessibility
✅ Example 1 – Basic Single Select
<label for="country" class="form-label">Country</label>
<select class="form-select" id="country">
<option selected>Choose your country</option>
<option value="us">United States</option>
<option value="in">India</option>
<option value="uk">United Kingdom</option>
</select>
🔍 Explanation:
| Element | Description |
|---|---|
.form-select | Bootstrap class to style native dropdown |
selected | Sets default selected option |
form-label | Styles associated <label> element |
✅ Example 2 – Disabled Select Menu
<select class="form-select" disabled>
<option>Disabled select menu</option>
</select>
- Prevents user interaction when input is not needed or allowed
✅ Example 3 – Multiple Select Menu
<label for="fruits" class="form-label">Choose Fruits</label>
<select multiple class="form-select" id="fruits">
<option>Apple</option>
<option>Banana</option>
<option>Mango</option>
</select>
- Allows users to select multiple options
- Hold
Ctrl(Windows) orCmd(Mac) to multi-select
✅ Example 4 – Sizing the Select Menu
<select class="form-select form-select-lg mb-3">
<option selected>Large select</option>
<option>Option 1</option>
</select>
<select class="form-select form-select-sm">
<option selected>Small select</option>
<option>Option 1</option>
</select>
| Class | Description |
|---|---|
form-select-lg | Increases height/padding |
form-select-sm | Shrinks height/padding |
✅ Example 5 – Select Menu with Validation
<form class="needs-validation" novalidate>
<div class="mb-3">
<label for="validationSelect" class="form-label">Choose Option</label>
<select class="form-select" id="validationSelect" required>
<option selected disabled value="">Select an item</option>
<option>Item 1</option>
<option>Item 2</option>
</select>
<div class="invalid-feedback">
Please select an option.
</div>
</div>
<button class="btn btn-primary" type="submit">Submit</button>
</form>
<script>
(() => {
const forms = document.querySelectorAll('.needs-validation');
forms.forEach(form => {
form.addEventListener('submit', event => {
if (!form.checkValidity()) {
event.preventDefault();
event.stopPropagation();
}
form.classList.add('was-validated');
}, false);
});
})();
</script>
- Leverages Bootstrap’s built-in validation classes
- Shows error feedback on submit if no valid selection is made
🛠️ Best Practices for Select Menus
| Tip | Why It Helps |
|---|---|
| Use a placeholder option | Encourages users to make an active choice |
Combine with .form-label | Improves accessibility and clarity |
| Don’t use too many options | Avoid overwhelming the user |
Use multiple only when needed | Requires more effort to interact, especially on mobile |
| Always validate selection | Prevents form submission errors |
📌 Summary – Dropdown Inputs for Flexible User Choice
Bootstrap 5 select menus give you elegant and responsive dropdowns to collect user choices easily. With utilities for size, validation, and layout integration, select elements can fit into almost any UI scenario.
🔍 Key Takeaways:
- Style dropdowns with
.form-select - Add
multiplefor multi-choice lists - Control sizes with
.form-select-sm/.form-select-lg - Validate selects like other form controls using JS
- Match selects with appropriate
<label>elements
⚙️ Ideal for country lists, category pickers, forms, and filters.
❓ FAQs – Bootstrap 5 Select Menus
❓ Can I use form-control instead of form-select?
❌ No. Use .form-control for <input>, and .form-select for <select> elements.
❓ How do I add a default placeholder?
✅ Add an <option selected disabled> with empty value as the first choice.
❓ Are select menus accessible in Bootstrap?
✅ Yes—when paired with proper labels and validation attributes.
❓ Can I style the dropdown arrow in a Bootstrap select?
✅ Not directly via Bootstrap; use custom select plugins or custom CSS.
Share Now :
