Обновление 2019 - Bootstrap 4
«Центрированный контент» может означать много разных вещей, и центрирование Bootstrap сильно изменилось со времени первоначальной публикации.
Горизонтальный центр
Bootstrap 3
text-center
используется для display:inline
элементов
center-block
к центру display:block
элементов
col-*offset-*
к центру столбцов сетки
- см. этот ответ для центрирования навигационной панели
Demo Bootstrap 3 Горизонтальное центрирование
Bootstrap 4
text-center
все еще используется для display:inline
элементов
mx-auto
заменяет center-block
по центру display:block
элементов
offset-*
или mx-auto
можно использовать для центрирования столбцов сетки
justify-content-center
в row
также можно использовать для центрирования col-*
mx-auto
(автоматические поля оси x) будут центрировать display:block
или display:flex
элементы, которые имеют определенную ширину , (%
, vw
, px
и т. Д. .). Flexbox используется по умолчанию для столбцов сетки, поэтому существуют также различные методы центрирования flexbox.
Демо Bootstrap 4 Горизонтальное центрирование
Вертикальный центр
Теперь, когда Bootstrap 4 по умолчанию flexbox , существует много разных подходов к вертикальному выравниванию с использованием: auto-margins , flexbox utils или утилиты отображения вместе с утилиты вертикального выравнивания . Поначалу «утилиты вертикального выравнивания» кажутся очевидными, но эти только работают с элементами линейного и табличного отображения. Вот несколько вариантов вертикальной центровки Bootstrap 4.
1 - вертикальный центр с использованием автоматических полей:
Другой способ вертикального центрирования - использовать my-auto
. Это будет центрировать элемент внутри его контейнера. Например, h-100
делает строку полной высоты, а my-auto
будет вертикально центрировать столбец col-sm-12
.
<div class="row h-100">
<div class="col-sm-12 my-auto">
<div class="card card-block w-25">Card</div>
</div>
</div>
Вертикальный центр с использованием авто полей Демо
my-auto
представляет поля на вертикальной оси Y и эквивалентно:
margin-top: auto;
margin-bottom: auto;
2 - вертикальный центр с Flexbox:
* * 1131
Поскольку Bootstrap 4 .row
теперь display:flex
, вы можете просто использовать align-self-center
в любом столбце для его вертикального центрирования ...
<div class="row">
<div class="col-6 align-self-center">
<div class="card card-block">
Center
</div>
</div>
<div class="col-6">
<div class="card card-inverse card-danger">
Taller
</div>
</div>
</div>
или используйте align-items-center
на всем .row
, чтобы выровнять по центру по вертикали все col-*
в ряду ...
<div class="row align-items-center">
<div class="col-6">
<div class="card card-block">
Center
</div>
</div>
<div class="col-6">
<div class="card card-inverse card-danger">
Taller
</div>
</div>
</div>
Вертикальный центр Колонки различной высоты Демонстрация
3 - Вертикальный центр с использованием утилит дисплея:
Bootstrap 4 имеет утилиты отображения , которые можно использовать для display:table
, display:table-cell
, display:inline
и т. Д. Они могут использоваться с утилитами вертикального выравнивания для выравнивание элементов ячеек inline, inline-block или table.
<div class="row h-50">
<div class="col-sm-12 h-100 d-table">
<div class="card card-block d-table-cell align-middle">
I am centered vertically
</div>
</div>
</div>
Вертикальный центр с использованием утилит дисплея Демонстрация