引导程序 5(2021 年更新)
Bootstrap 5 仍然使用 flexbox 网格布局,因此居中的工作方式相同。
-
text-center 居中 display:inline 元素(即:span、img)
-
mx-auto 用于在 flex 元素中居中
-
offset-* 或 mx-auto 可用于居中列 (.col-)
-
justify-content-center 到row 内的中心列 (col-*)
引导程序 4
“居中的内容”可以表示很多不同的意思,自最初发布以来,Bootstrap 居中已经发生了很大变化。
水平中心
引导程序 3
-
text-center 用于display:inline 元素
-
center-block 居中 display:block 元素
-
col-*offset-* 将网格列居中
- 请参阅this answer 以使导航栏居中
Demo Bootstrap 3 Horizontal Centering
引导程序 4
-
text-center 仍用于 display:inline 元素
-
mx-auto 将 center-block 替换为居中 display:block 元素
-
offset-* 或 mx-auto 可用于居中网格列
-
justify-content-center in row 也可以用来居中col-*
mx-auto(自动 x 轴边距)将居中 display:block 或 display:flex 具有定义宽度的元素、(%、vw、px 等..)。 默认使用弹性盒在网格列上,因此弹性盒居中方法也多种多样。
Demo Bootstrap 4 Horizontal Centering
**垂直中心**
--
现在 Bootstrap 4 默认为 flexbox,有许多不同的垂直对齐方法可以使用:auto-margins、flexbox utils,或 display utils 以及 vertical align 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>
Vertical Center Using Auto Margins Demo
my-auto表示垂直y轴的边距,相当于:
margin-top: auto;
margin-bottom: auto;
2 - Flexbox 垂直居中:
由于 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>
或者,在整个.row 上使用align-items-center 将行中的所有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>
Vertical Center Different Height Columns Demo
3 - 使用显示工具的垂直居中:
Bootstrap 4 具有display utils,可用于display:table、display:table-cell、display:inline 等。这些可以与vertical alignment utils 一起使用以对齐内联、内联块或表格单元格元素。
<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>
Vertical Center Using Display Utils Demo