Bootstrap 4 垂直对齐
使用 CSS 和 Bootstrap 将元素垂直对齐到中心或底部对齐始终是一个挑战。期望的垂直对齐可以在父容器内,或相对于相邻元素。
现在,默认情况下 Bootstrap 4 是 **flexbox,**有许多不同的垂直对齐方法: 自动边距 , Flexbox 实用程序或 Display Utilities以及 Vertical Align Utilities 。
起初, Vertical Alignment Utilities 似乎是一个明显的选择,但这些只适用于内联和表格显示元素。以下是一些 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 的垂直中心:
由于 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>
3 - 垂直中心使用 Display Utils:
自举 4 具有显示 utils 的可用于 display:table
,display:table-cell
,display:inline
等。这些可以与使用垂直取向 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>