Bootstrap4 Flex(弹性)布局

Bootstrap4 通过 flex 类�控制页�的布局。


弹性盒�(flexbox)

Bootstrap 3 与 Bootstrap 4 最大的区别就是 Bootstrap 4 使用弹性盒��布局,而�是使用浮动�布局。

弹性盒�是 CSS3 的一�新的布局模�,更适��应�的设计,如果你还�了解 flex,�以阅读我们的 CSS3 弹性盒�(Flex Box) 教程

注�:IE9 �其以下版本�支�弹性盒�,所以如果你需�兼容 IE8-9,请使用 Bootstrap 3。

以下实例使用 d-flex 类创建一个弹性盒�容器,并设置三个弹性�元素:

实例

<div class="d-flex p-3 bg-secondary text-white"> <div class="p-2 bg-info">Flex item 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div>

�试一下 »

创建显示在�一行上的弹性盒�容器�以使用 d-inline-flex 类:

实例

<div class="d-inline-flex p-3 bg-secondary text-white"> <div class="p-2 bg-info">Flex item 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div>

�试一下 »

水平方�

.flex-row �以设置弹性�元素水平显示,这是默认的。

使用 .flex-row-reverse 类用于设置�对�显示,�与 .flex-row 方�相�。

实例

<div class="d-flex flex-row bg-secondary"> <div class="p-2 bg-info">Flex item 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> <div class="d-flex flex-row-reverse bg-secondary"> <div class="p-2 bg-info">Flex item 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div>

�试一下 »

垂直方�

.flex-column 类用于设置弹性�元素垂直方�显示, .flex-column-reverse 用于翻转�元素:

实例

<div class="d-flex flex-column"> <div class="p-2 bg-info">Flex item 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> <div class="d-flex flex-column-reverse"> <div class="p-2 bg-info">Flex item 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div>

�试一下 »

内容排列

.justify-content-* 类用于修改弹性�元素的排列方�,* ��许的值有:start (默认), end, center, between 或 around:

实例

<div class="d-flex justify-content-start">...</div> <div class="d-flex justify-content-end">...</div> <div class="d-flex justify-content-center">...</div> <div class="d-flex justify-content-between">...</div> <div class="d-flex justify-content-around">...</div>

�试一下 »

等宽

.flex-fill 类强制设置�个弹性�元素的宽度是一样的:

实例

<div class="d-flex"> <div class="p-2 bg-info flex-fill">Flex item 1</div> <div class="p-2 bg-warning flex-fill">Flex item 2</div> <div class="p-2 bg-primary flex-fill">Flex item 3</div> </div>

�试一下 »

扩展

.flex-grow-1 用于设置�元素使用剩下的空间。以下实例中��两个�元素�设置了它们所需�的空间,最�一个获�剩余空间。 :

实例

<div class="d-flex"> <div class="p-2 bg-info">Flex item 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary flex-grow-1">Flex item 3</div> </div>

�试一下 »

�示: 使用 .flex-shrink-1 用于设置�元素的收缩规则。


排�

.order 类�以设置弹性�元素的排�,从 .order-1 到 .order-12,数字越低��越高( .order-1 排在 .order-2 之�) :

实例

<div class="d-flex bg-secondary"> <div class="p-2 bg-info order-3">Flex item 1</div> <div class="p-2 bg-warning order-2">Flex item 2</div> <div class="p-2 bg-primary order-1">Flex item 3</div> </div>

�试一下 »

外边�

.mr-auto 类�以设置�元素�外边�为 auto,� margin-right: auto!important;,.ml-auto 类�以设置�元素左外边�为 auto,� margin-left: auto!important;:

实例

<div class="d-flex bg-secondary"> <div class="p-2 mr-auto bg-info">Flex item 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 bg-primary">Flex item 3</div> </div> <div class="d-flex bg-secondary"> <div class="p-2 bg-info">Flex item 1</div> <div class="p-2 bg-warning">Flex item 2</div> <div class="p-2 ml-auto bg-primary">Flex item 3</div> </div>

�试一下 »

包裹

弹性容器中包裹�元素�以使用以下三个类: .flex-nowrap (默认), .flex-wrap 或 .flex-wrap-reverse。设置 flex 容器是�行或者多行。

实例

<div class="d-flex flex-wrap">..</div> <div class="d-flex flex-wrap-reverse">..</div> <div class="d-flex flex-nowrap">..</div>

�试一下 »

内容对�

我们�以使用 .align-content-* �控制在垂直方�上如何去堆��元素,包�的值有:.align-content-start (默认), .align-content-end, .align-content-center, .align-content-between, .align-content-around 和 .align-content-stretch。

这些类在�有一行的弹性�元素中是无效的。

实例

<div class="d-flex flex-wrap align-content-start">..</div> <div class="d-flex flex-wrap align-content-end">..</div> <div class="d-flex flex-wrap align-content-center">..</div> <div class="d-flex flex-wrap align-content-around">..</div> <div class="d-flex flex-wrap align-content-stretch">..</div>

�试一下 »

�元素对�

如果�设置�行的�元素对��以使用 .align-items-* 类�控制,包�的值有:.align-items-start, .align-items-end, .align-items-center, .align-items-baseline, 和 .align-items-stretch (默认)。

实例

<div class="d-flex align-items-start">..</div> <div class="d-flex align-items-end">..</div> <div class="d-flex align-items-center">..</div> <div class="d-flex align-items-around">..</div> <div class="d-flex align-items-stretch">..</div>

�试一下 »

指定�元素对�

如果�设置指定�元素对�对��以使用 .align-self-* 类�控制,包�的值有:.align-self-start, .align-self-end, .align-self-center, .align-self-baseline, 和 .align-self-stretch (默认)。

实例

<div class="d-flex bg-light" style="height:150px"> <div class="p-2 border">Flex item 1</div> <div class="p-2 border align-self-start">Flex item 2</div> <div class="p-2 border">Flex item 3</div> </div>

�试一下 »

�应� flex 类

我们�以根���的设备,设置 flex 类,从而实现页��应�布局,以下表格中的 * ��以的值有:sm, md, lg 或 xl, 对应的是�型设备�中型设备,大型设备,超大型设备。
类 实例 实现
弹性容器
.d-*-flex 根���的�幕设备创建弹性盒�容器 �试一下
.d-*-inline-flex 根���的�幕设备创建行内弹性盒�容器 �试一下
方�
.flex-*-row 根���的�幕设备在水平方�显示弹性�元素 �试一下
.flex-*-row-reverse 根���的�幕设备在水平方�显示弹性�元素,且�对� �试一下
.flex-*-column 根���的�幕设备在垂直方�显示弹性�元素 �试一下
.flex-*-column-reverse 根���的�幕设备在垂直方�显示弹性�元素,且方�相� �试一下
排�
.order-*-0-12 在��幕尺寸上修改排� �试一下
内容对�
.justify-content-*-start 根����幕设备在开始�置显示弹性�元素 (左对�) �试一下
.justify-content-*-end 根����幕设备在尾部显示弹性�元素 (�对�) �试一下
.justify-content-*-center 根����幕设备在 flex 容器中居中显示�元素 �试一下
.justify-content-*-between 根����幕设备使用 "between" 显示弹性�元素 �试一下
.justify-content-*-around 根����幕设备使用 "around" 显示弹性�元素 �试一下
等宽
.flex-*-fill 根���的�幕设备强制等宽 �试一下
扩展
.flex-*-grow-0 ä¸�å�Œçš„å±�幕设备ä¸�设置扩展  
.flex-*-grow-1 ä¸�å�Œçš„å±�幕设备设置扩展  
收缩
.flex-*-shrink-0 ä¸�å�Œçš„å±�幕设备ä¸�设置收缩  
.flex-*-shrink-1 ä¸�å�Œçš„å±�幕设备设置收缩  
包裹
.flex-*-nowrap ��的�幕设备�设置包裹元素 �试一下
.flex-*-wrap ��的�幕设备设置包裹元素 �试一下
.flex-*-wrap-reverse ��的�幕设备�转包裹元素 �试一下
内容排列
.align-content-*-start 根����幕设备在起始�置堆�元素 �试一下
.align-content-*-end 根����幕设备在结��置堆�元素 �试一下
.align-content-*-center 根����幕设备在中间�置堆�元素 �试一下
.align-content-*-around 根����幕设备,使用 "around" 堆�元素 �试一下
.align-content-*-stretch 根����幕设备,通过伸展元素�堆� �试一下
元素对�
.align-items-*-start 根����幕设备,让元素在头部显示在�一行。 �试一下
.align-items-*-end 根����幕设备,让元素在尾部显示在�一行。 �试一下
.align-items-*-center 根����幕设备,让元素在中间�置显示在�一行。 �试一下
.align-items-*-baseline 根����幕设备,让元素在基线上显示在�一行。 �试一下
.align-items-*-stretch 根����幕设备,让元素延展高度并显示在�一行。 �试一下
�独一个�元素的对�方�
.align-self-*-start ����幕设备,让�独一个�元素显示在头部。 �试一下
.align-self-*-end ����幕设备,让�独一个�元素显示在尾部 �试一下
.align-self-*-center ����幕设备,让�独一个�元素显示在居中�置 �试一下
.align-self-*-baseline ����幕设备,让�独一个�元素显示在基线�置 �试一下
.align-self-*-stretch ����幕设备,延展一个�独�元素 �试一下