В Bootstrap 4 класс row
должен only использоваться, чтобы содержать col*
, а не другие элементы, такие как btn
и dropdown
.Другие элементы размещены внутри столбцов.From Bootstrap docs ...
"Строки являются обертками для столбцов. Каждый столбец имеет горизонтальный отступ (называемый желобом) для управления пространством между ними ... В макете сетки содержимое должно бытьпомещены в столбцы, и только столбцы могут быть непосредственными потомками строк. "
Поместите раскрывающийся список и btn в столбцы.Используйте сетку автоматического макета (col
или col-auto
) для управления равной шириной.Для кнопок, которые заполняют ширину родительского элемента, используйте btn-block
.
Для полной равной ширины используйте col
...
<div class="row mx-2">
<div class="col">
<div class="dropdown">
<div class="btn btn-info btn-block dropdown-toggle" data-toggle="dropdown">
Option 1
</div>
<div class="dropdown-menu">
...
</div>
</div>
</div>
<div class="col">
<div class="btn btn-dark btn-block mx-2">Option3</div>
</div>
...
</div>
</div>
Для "сжатия по размеру" используйте ширину содержимого col-auto
...
<div class="row mx-2">
<div class="col-auto">
<div class="dropdown">
<div class="btn btn-info btn-block dropdown-toggle" data-toggle="dropdown">
Option 1
</div>
<div class="dropdown-menu">
...
</div>
</div>
</div>
<div class="col-auto">
<div class="btn btn-dark btn-block mx-2">Option3</div>
</div>
...
</div>
</div>
Демонстрация обоих вариантов