Bootstrap 4 布局
Bootstrap 4 布局
使用 flex 类控制 Bootstrap 4 组件的布局。
弹性盒
Bootstrap 3 和 Bootstrap 4 的最大区别在于,Bootstrap 4 现在使用 flexbox 而不是浮动来处理布局。
灵活的盒子布局模块,可以更轻松地设计灵活的响应式布局结构,而无需使用浮动或定位。 如果您是 flex 新手,可以阅读我们的 CSS Flexbox 教程。
注意:IE9 及更早版本不支持 Flexbox。
如果需要 IE8-9 支持,请使用 Bootstrap 3。 最稳定的 Bootstrap 版本,团队仍然支持它进行关键错误修复和文档更改。 但是,不会添加任何新功能。
要创建 flexbox 容器并将直接子项转换为 flex 项,请使用 d-flex
类:
实例
实例
<div class="d-flex p-3 bg-secondary text-white">
<div class="p-2 bg-info">弹性项目 1</div>
<div class="p-2 bg-warning">弹性项目 2</div>
<div class="p-2 bg-primary">弹性项目 3</div>
</div>
亲自试一试 »要创建内联 flexbox 容器,请使用 d-inline-flex
类:
实例
实例
<div class="d-inline-flex p-3 bg-secondary text-white">
<div class="p-2 bg-info">弹性项目 1</div>
<div class="p-2 bg-warning">弹性项目 2</div>
<div class="p-2 bg-primary">弹性项目 3</div>
</div>
亲自试一试 »水平方向
使用 .flex-row
水平显示弹性项目(并排)。 这是默认设置。
提示:使用.flex-row-reverse
来右对齐水平方向:
实例
实例
<div class="d-flex flex-row bg-secondary">
<div class="p-2 bg-info">弹性项目 1</div>
<div class="p-2 bg-warning">弹性项目 2</div>
<div class="p-2 bg-primary">弹性项目 3</div>
</div>
<div class="d-flex flex-row-reverse bg-secondary">
<div class="p-2 bg-info">弹性项目 1</div>
<div class="p-2 bg-warning">弹性项目 2</div>
<div class="p-2 bg-primary">弹性项目 3</div>
</div>
亲自试一试 »垂直方向
使用 .flex-column
垂直显示弹性项目(彼此重叠),或 .flex- column-reverse
反转垂直方向:
实例
实例
<div class="d-flex flex-column">
<div class="p-2 bg-info">弹性项目 1</div>
<div class="p-2 bg-warning">弹性项目 2</div>
<div class="p-2 bg-primary">弹性项目 3</div>
</div>
<div class="d-flex flex-column-reverse">
<div class="p-2 bg-info">弹性项目 1</div>
<div class="p-2 bg-warning">弹性项目 2</div>
<div class="p-2 bg-primary">弹性项目 3</div>
</div>
亲自试一试 »证明内容
使用 .justify-content-*
类来改变弹性项目的对齐方式。 有效的类是 start
(默认)、end
、center
,介于
或左右
:
实例
实例
<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">弹性项目 1</div>
<div class="p-2 bg-warning flex-fill">弹性项目 2</div>
<div class="p-2 bg-primary flex-fill">弹性项目 3</div>
</div>
亲自试一试 »Grow
在弹性项目上使用 .flex-grow-1
以占用其余空间。 在下面的示例中,前两个弹性项目占用了它们必要的空间,而最后一个项目占用了剩余的可用空间:
实例
实例
<div class="d-flex">
<div class="p-2 bg-info">弹性项目 1</div>
<div class="p-2 bg-warning">弹性项目 2</div>
<div class="p-2 bg-primary flex-grow-1">弹性项目 3</div>
</div>
亲自试一试 »提示:在弹性项目上使用 .flex-shrink-1
使其在必要时收缩。
Order
使用 .order
类更改特定弹性项目的视觉顺序。 有效的类是从 0 到 12,其中最小的数字具有最高的优先级(order-1 显示在 order-2 之前,等等):
实例
实例
<div class="d-flex bg-secondary">
<div class="p-2 bg-info
order-3">弹性项目 1</div>
<div class="p-2 bg-warning order-2">弹性项目 2</div>
<div class="p-2 bg-primary order-1">弹性项目 3</div>
</div>
亲自试一试 »自动边距
使用 .mr-auto
(将项目向右推)或使用 轻松为弹性项目添加自动边距 .ml-auto
(向左推项目):
实例
实例
<div class="d-flex
bg-secondary">
<div class="p-2 mr-auto bg-info">弹性项目 1</div>
<div class="p-2 bg-warning">弹性项目 2</div>
<div class="p-2 bg-primary">弹性项目 3</div>
</div>
<div class="d-flex bg-secondary">
<div class="p-2 bg-info">弹性项目 1</div>
<div class="p-2 bg-warning">弹性项目 2</div>
<div class="p-2 ml-auto bg-primary">弹性项目 3</div>
</div>
亲自试一试 »Wrap
使用 .flex-nowrap
(默认)、.flex-wrap
或 .flex-wrap-reverse
控制弹性项目在弹性容器中的包装方式。
单击下面的按钮,通过更改示例框中的弹性项目的包装来查看三个类之间的区别:
实例
实例
<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-baseline">..</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">弹性项目 1</div>
<div class="p-2 borderalign-self-start">弹性项目 2</div>
<div class="p-2 border">弹性项目 3</div>
</div>
亲自试一试 »响应式 Flex 类
所有 flex 类都带有额外的响应类,这使得在特定的屏幕尺寸上设置特定的 flex 类变得容易。
*
符号可以替换为 sm、md、lg 或 xl,分别代表小、中、大或超大屏幕。
类 | 描述 | 例子 |
---|---|---|
Flex Container | ||
.d-*-flex |
为不同的屏幕创建一个 flexbox 容器 | 测试一下 |
.d-*-inline-flex |
为不同的屏幕创建一个内联 flexbox 容器 | 测试一下 |
Direction | ||
.flex-*-row |
在不同的屏幕上水平显示弹性项目 | 测试一下 |
.flex-*-row-reverse |
在不同的屏幕上水平显示弹性项目并右对齐 | 测试一下 |
.flex-*-column |
在不同的屏幕上垂直显示弹性项目 | 测试一下 |
.flex-*-column-reverse |
在不同的屏幕屏幕上以相反的顺序垂直显示弹性项目 | 测试一下 |
Justified Content | ||
.justify-content-*-start |
在不同屏幕上从头开始(左对齐)显示弹性项目 | 测试一下 |
.justify-content-*-end |
在不同屏幕的末尾(右对齐)显示弹性项目 | 测试一下 |
.justify-content-*-center |
在不同屏幕上的 flex 容器的中心显示 弹性项目 | 测试一下 |
.justify-content-*-between |
在不同屏幕上的"中间"显示弹性项目 | 测试一下 |
.justify-content-*-around |
在不同的屏幕上"围绕"显示弹性项目 | 测试一下 |
Fill / Equal Width | ||
.flex-*-fill |
强制 弹性项目在不同屏幕上的宽度相等 | 测试一下 |
Grow | ||
.flex-*-grow-0 |
不要让项目在不同的屏幕上增长 | |
.flex-*-grow-1 |
让项目在不同的屏幕上增长 | |
Shrink | ||
.flex-*-shrink-0 |
不要让项目在不同的屏幕上缩小 | |
.flex-*-shrink-1 |
使项目在不同屏幕上缩小 | |
Order | ||
.order-*-0-12 |
在小屏幕上将顺序从 0 更改为 12 | 测试一下 |
Wrap | ||
.flex-*-nowrap |
不要在不同的屏幕上包装项目 | 测试一下 |
.flex-*-wrap |
在不同的屏幕上包装项目 | 测试一下 |
.flex-*-wrap-reverse |
反转项目在不同屏幕上的包装 | 测试一下 |
Align Content | ||
.align-content-*-start |
从一开始就在不同的屏幕上对齐收集的项目 | 测试一下 |
.align-content-*-end |
在不同屏幕上对齐最后收集的项目 | 测试一下 |
.align-content-*-center |
在不同屏幕的中心对齐收集的项目 | 测试一下 |
.align-content-*-around |
在不同屏幕上"围绕"对齐收集的项目 | 测试一下 |
.align-content-*-stretch |
在不同的屏幕上拉伸收集的项目 | 测试一下 |
Align Items | ||
.align-items-*-start |
在不同屏幕上从头开始对齐单行项目 | 测试一下 |
.align-items-*-end |
在不同屏幕的末尾对齐单行项目 | 测试一下 |
.align-items-*-center |
在不同屏幕的中心对齐单行项目 | 测试一下 |
.align-items-*-baseline |
在不同屏幕上对齐基线上的单行项目 | 测试一下 |
.align-items-*-stretch |
在不同屏幕上拉伸单行项目 | 测试一下 |
Align Self | ||
.align-self-*-start |
在不同屏幕上从头开始对齐 弹性项目 | 测试一下 |
.align-self-*-end |
在不同屏幕的末尾对齐 弹性项目 | 测试一下 |
.align-self-*-center |
在不同屏幕的中心对齐 弹性项目 | 测试一下 |
.align-self-*-baseline |
在不同屏幕的基线上对齐 弹性项目 | 测试一下 |
.align-self-*-stretch |
在不同的屏幕上拉伸弹性项目 | 测试一下 |