Select2 множественный выбор сжимается внутри встроенной формы bootstrap4
Ниже приведен фрагмент, демонстрирующий мою проблему. Проблема в том, что поле становится очень маленьким, когда я в него набираю.
$(function() {
$("select").select2({
placeholder: "Select a word",
width: "100%"
});
});
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css">
<link href="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/css/select2.min.css" rel="stylesheet"/>
<link href="https://select2.github.io/select2-bootstrap-theme/css/select2-bootstrap.css" rel="stylesheet"/>
<script src="https://code.jquery.com/jquery-3.2.1.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.3/js/select2.full.js"></script>
<div class="container">
<form class="form-inline">
<div class="form-group row">
<div class="col-sm-12">
<select multiple="multiple" name="word" id="word">
<option value="1">A really long string</option>
</select>
</div>
</div>
</form>
</div>
Как я могу предотвратить сокращение поля?
1 ответ
Сокращение связано с
width: 100%
Селект пытается получить его ширину из родительского контейнера, но ни у кого из родителей нет указанной ширины.
https://jsfiddle.net/wcy2L3pj/
Я положил ваш код в эту скрипку и добавил style="width: 100%;"
к row
родитель и сокращение прекращается. Если вы поэкспериментируете с перемещением этого определения ширины, вы увидите, что на любом другом элементе использование процентного значения не останавливает сжатие.
Однако поменять местами style="width: 100%;"
за style="width: 250px;"
, определенное значение пикселя, и проблема сжатия прекращается. Это потому, что есть определенное конкретное значение, из которого можно выбрать Select2 с помощью width: 100%
установить в его инициализации.