Skip to content

Flex

Flex 工具类用于控制 Flex 布局。通过改变 flex 属性,可以实现元素的自适应、对齐等效果。区别于栅格布局,Flex 工具类更加灵活,可以创建更复杂的布局。

基础用法

基础用法

方向控制

使用 .flex-row 设置水平方向(浏览器默认),或 .flex-row-reverse 定义水平反向。

水平方向

使用 .flex-column 设置垂直方向,或 .flex-column-reverse 定义垂直反向。

垂直方向

内容对齐

在 flexbox 容器上使用 .justify-content-* 工具类来更改主轴上 flex 项目的对齐方式(起始为 x 轴,如果 flex-direction: column 则为 y 轴)。* 可以是 start (浏览器默认)、 endcenterbetweenaroundevenly

主轴对齐

在 flexbox 容器上使用 .align-items-* 工具类来更改交叉轴上 flex 项目的对齐方式(起始为 y 轴,如果 flex-direction: column 则为 x 轴)。* 可以是 startendcenterbaselinestretch

交叉轴对齐

在 flexbox 容器上使用 .align-content-* 工具类来更改多行容器交叉轴上 flex 项目的对齐方式(起始为 y 轴,如果 flex-direction: column 则为 x 轴)。* 可以是 startendcenterbetweenaroundstretch

注意:此属性对单行弹性项目没有影响。

多行交叉轴对齐

独立交叉轴对齐

在 flexbox 容器上使用 .align-self-* 工具类来更改单个 flex 项目的对齐方式。* 可以是 startendcenterbaselinestretch

交叉轴对齐

项目缩放

在一系列同级元素上使用 .flex-fill 类,强制它们的宽度等于它们的内容(如果它们的内容没有超出它们的边框,则宽度相等),同时占用所有可用的水平空间。

项目填充

使用 .flex-grow-* 工具类切换弹性项目扩展以填充可用空间的能力。在下面的示例中, .flex-grow-1 元素使用其所能使用的所有可用空间,同时为其余两个弹性项目留出必要的空间。

项目扩展

使用 .flex-shrink-* 工具类在必要时切换弹性项目的收缩能力。在下面的示例中,第二个带有 .flex-shrink-1 的弹性项目中的内容被强制换行,「收缩」以便为前一个带有 width: 100% 的弹性项目留出更多空间。

项目收缩

顺序调整

使用 .order-* 工具类更改特定弹性项目的视觉顺序。我们仅提供将项目设为第一或最后以及重置以使用 DOM 顺序的选项。由于 order 采用 05 之间的任何整数值,因此可以为任何需要的其他值添加自定义 CSS。

顺序调整

速查表

类名样式
.d-flexdisplay: flex
.d-inline-flexdisplay: inline-flex
.flex-fillflex: 1 1 auto
.flex-rowflex-direction: row
.flex-row-reverseflex-direction: row-reverse
.flex-columnflex-direction: column
.flex-column-reverseflex-direction: column-reverse
.flex-wrapflex-wrap: wrap
.flex-nowrapflex-wrap: nowrap
.flex-wrap-reverseflex-wrap: wrap-reverse
.justify-content-startjustify-content: flex-start
.justify-content-endjustify-content: flex-end
.justify-content-centerjustify-content: center
.justify-content-betweenjustify-content: space-between
.justify-content-aroundjustify-content: space-around
.justify-content-evenlyjustify-content: space-evenly
.align-items-startalign-items: flex-start
.align-items-endalign-items: flex-end
.align-items-centeralign-items: center
.align-items-baselinealign-items: baseline
.align-items-stretchalign-items: stretch
.align-content-startalign-content: flex-start
.align-content-endalign-content: flex-end
.align-content-centeralign-content: center
.align-content-betweenalign-content: space-between
.align-content-aroundalign-content: space-around
.align-content-stretchalign-content: stretch
.align-self-startalign-self: flex-start
.align-self-endalign-self: flex-end
.align-self-centeralign-self: center
.align-self-baselinealign-self: baseline
.align-self-stretchalign-self: stretch
.flex-grow-0flex-grow: 0
.flex-grow-1flex-grow: 1
.flex-shrink-0flex-shrink: 0
.flex-shrink-1flex-shrink: 1
.order-firstorder: -1
.order-1order: 1
.order-2order: 2
.order-3order: 3
.order-4order: 4
.order-5order: 5
.order-lastorder: 6

以上所有类均支持响应式前缀,如 sm:, md:, lg:, xl: