I'm running into an issue where the text overlaps under the X "Clear" button on hover in the selection menu. Adding padding to the right is not a solution as it pushes the icon outside the box. I'm using the Select2 JS library found here https://select2.org/ and Bootstrap 5
$("#search_bar").select2({ theme: 'bootstrap-5', placeholder: "Some text", allowClear: true });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/js/select2.min.js" integrity="sha512-2ImtlRlf2VVmiGZsjm9bEyhjGW4dU7B6TNwh/hx/iSByxNENtj3WVE6o/9Lj4TJeVXPi4bnOIMXFIJJAeufa0A==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.13/css/select2.min.css" integrity="sha512-nMNlpuaDPrqlEls3IX/Q56H36qvBASwb3ipuo3MxeWbsQB1881ox0cRv7UPTgBlriqoynt35KjEwgGUeUXIPnw==" crossorigin="anonymous" referrerpolicy="no-referrer" /> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/select2-bootstrap-5-theme.min.css" /> <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous"> <div class=""> <select id="search_bar" class="form-select w-25"> <option value="1"> This is a long option string </option> <option value="2"> This is another long option string </option> </select> </div>
Add CSS below.
https://jsfiddle.net/8n23bd6q/
Follow the documentation here Select2 Documentation. You can extend the select2 width using
width: 'style'
and an inline style in the tag<select>
. Here I set the width of the select to200px
Then, by looking at the DOM structure of select2 (using Chrome Devtool), I found that we can make the X button not overlap the text by adding the following CSS: