Вот правильная разметка для того, чего вы пытаетесь достичь:
.price-selection {
border: 1px solid #8ABE57;
display: inline-block;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<div class="row">
<div class="col-12 product-info-subtitle cuanto-pagar">
<p>¿Cuánto quieres pagar?</p>
</div>
<div class="col-12">
<div class="row justify-content-around">
<div class="col-3 price-selection text-center">
<p class="price">one</p>
<p class="period">one</p>
</div>
<div class="col-3 price-selection text-center">
<p class="price">two</p>
<p class="period">two</p>
</div>
<div class="col-3 price-selection text-center">
<p class="price">three</p>
<p class="period">three</p>
</div>
</div>
</div>
</div>
</div>
Важная часть: я завернул col
в row
, который имеет класс justify-content-around
.
Часть row
исправляет поля / отступы сетки Bootstrap на экранах различных размеров.
justify-content-around
дает ему justify-content: space-evenly
. В настоящее время Bootstrap имеет только justify-content-around
и justify-content-between
. Однако, поскольку он был выпущен, во Flexbox было добавлено новое значение для justify-content (которое, вероятно, будет добавлено в Bootstrap), которое равно space-evenly
. Однако у Bootstrap еще нет класса для него.
Если вы хотите разместить элементы равномерно, вам нужно добавить их в CSS самостоятельно:
.price-selection {
border: 1px solid #8ABE57;
display: inline-block;
}
.justify-content-evenly {
display: flex;
justify-content: space-evenly;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" rel="stylesheet" />
<div class="container">
<div class="row">
<div class="col-12 product-info-subtitle cuanto-pagar">
<p>¿Cuánto quieres pagar?</p>
</div>
<div class="col-12">
<div class="row justify-content-evenly">
<div class="col-3 price-selection text-center">
<p class="price">one</p>
<p class="period">one</p>
</div>
<div class="col-3 price-selection text-center">
<p class="price">two</p>
<p class="period">two</p>
</div>
<div class="col-3 price-selection text-center">
<p class="price">three</p>
<p class="period">three</p>
</div>
</div>
</div>
</div>
</div>
Чтобы лучше понять разницу между различными типами интервалов во flexbox, вот графическое объяснение: https://css -tricks.com / almanac / properties / j / justify-content / # article-header-id-1