Не знаю, почему используйте width
, чтобы определить ширину для классов col-*
, так как в этом суть класса col-*
.Но если вы используете Bootstrap 4 , вы можете просто добавить justify-content-center
в row
div, и он будет центрировать его содержимое (если у него есть свободное место).
Вы можетеукажите меньший столбец для больших устройств, например, если вы используете col-sm-4
для маленьких экранов, вы можете использовать col-lg-2
для больших экранов, избегая установки определенной ширины, если это, конечно, выглядит так, как вам нужно, поскольку установка явного width
побеждает назначение классов столбцов.
Попробуйте в полноэкранном режиме
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" rel="stylesheet" />
<div class="container" style="border: 2px #000 solid;">
<div class="row justify-content-center" style="text-align: center; border: 3px red solid">
<div class="col-sm-4" style="background-color: yellow; border: 1px green solid; width: 50px; height: 100px;">text</div>
<div class="col-sm-4" style="background-color: yellow; border: 1px green solid; width: 50px; height: 100px;">text</div>
<div class="col-sm-4" style="background-color: yellow; border: 1px green solid; width: 50px; height: 100px;">text</div>
</div>
</div>
Для Bootstrap 3 вы можете попробовать добавить гибкое поведение, и оно должно работать примерно так же;или вы можете придерживаться Bootstrap, используя offset-*
классы.
.flex {
display: flex;
justify-content: center;
}
<link href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css" rel="stylesheet" />
<div class="container" style="border: 2px #000 solid;">
<div class="row flex" style="text-align: center; border: 3px red solid">
<div class="col-sm-4" style="background-color: yellow; border: 1px green solid; width: 150px; height: 100px;">text</div>
<div class="col-sm-4" style="background-color: yellow; border: 1px green solid; width: 150px; height: 100px;">text</div>
<div class="col-sm-4" style="background-color: yellow; border: 1px green solid; width: 150px; height: 100px;">text</div>
</div>
</div>
<!-- Offset -->
<div class="container" style="border: 2px #000 solid; margin-top: 20px">
<div class="row" style="text-align: center; border: 3px red solid">
<div class="col-xs-2 col-xs-offset-3" style="background-color: yellow; border: 1px green solid; height: 100px;">text</div>
<div class="col-xs-2" style="background-color: yellow; border: 1px green solid; height: 100px;">text</div>
<div class="col-xs-2" style="background-color: yellow; border: 1px green solid; height: 100px;">text</div>
</div>
</div>