核心提示:弹性盒子(flexbox)Bootstrap 3 与 Bootstrap 4 最大的区别就是 Bootstrap 4 使用弹性盒子来布局,而不是使用浮动来布局。弹性盒子是 CSS3 的一种新的布局模式...
弹性盒子(flexbox)
Bootstrap 3 与 Bootstrap 4 最大的区别就是 Bootstrap 4 使用弹性盒子来布局,而不是使用浮动来布局。
弹性盒子是 CSS3 的一种新的布局模式,更适合响应式的设计,如果你还不了解 flex,可以阅读我们的 CSS3 弹性盒子(Flex Box) 教程
创建显示在同一行上的弹性盒子容器可以使用 d-inline-flex 类:
<!DOCTYPE html> <html> <head> <title>Bootstrap</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.1.0/css/bootstrap.min.css"> <script src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script> <script src="https://cdn.bootcss.com/popper.js/1.12.5/umd/popper.min.js"></script> <script src="https://cdn.bootcss.com/bootstrap/4.1.0/js/bootstrap.min.js"></script> </head> <body> <p class="container mt-3"> <p class="d-inline-flex p-3 bg-secondary text-white"> <p class="p-2 bg-info">Flex item 1</p> <p class="p-2 bg-warning">Flex item 2</p> <p class="p-2 bg-primary">Flex item 3</p> </p> </p> </body> </html>
水平方向
.flex-row 可以设置弹性子元素水平显示,这是默认的。
使用 .flex-row-reverse 类用于设置右对齐显示,即与 .flex-row 方向相反
<p class="d-flex flex-row bg-secondary"> <p class="p-2 bg-info">Flex item 1</p> <p class="p-2 bg-warning">Flex item 2</p> <p class="p-2 bg-primary">Flex item 3</p> </p> <p class="d-flex flex-row-reverse bg-secondary"> <p class="p-2 bg-info">Flex item 1</p> <p class="p-2 bg-warning">Flex item 2</p> <p class="p-2 bg-primary">Flex item 3</p> </p>
垂直方向
.flex-column 类用于设置弹性子元素垂直方向显示, .flex-column-reverse 用于翻转子元素:
<p class="d-flex flex-column"> <p class="p-2 bg-info">Flex item 1</p> <p class="p-2 bg-warning">Flex item 2</p> <p class="p-2 bg-primary">Flex item 3</p> </p> <p class="d-flex flex-column-reverse"> <p class="p-2 bg-info">Flex item 1</p> <p class="p-2 bg-warning">Flex item 2</p> <p class="p-2 bg-primary">Flex item 3</p> </p>
内容排列
.justify-content-* 类用于修改弹性子元素的排列方式,* 号允许的值有:start (默认), end, center, between 或 around:
<p class="d-flex justify-content-start">...</p> <p class="d-flex justify-content-end">...</p> <p class="d-flex justify-content-center">...</p> <p class="d-flex justify-content-between">...</p> <p class="d-flex justify-content-around">...</p>
等宽
.flex-fill 类强制设置各个弹性子元素的宽度是一样的:
<p class="d-flex"> <p class="p-2 bg-info flex-fill">Flex item 1</p> <p class="p-2 bg-warning flex-fill">Flex item 2</p> <p class="p-2 bg-primary flex-fill">Flex item 3</p> </p>
扩展
.flex-grow-1 用于设置子元素使用剩下的空间。以下实例中前面两个子元素只设置了它们所需要的空间,最后一个获取剩余空间。 :
<p class="d-flex"> <p class="p-2 bg-info">Flex item 1</p> <p class="p-2 bg-warning">Flex item 2</p> <p class="p-2 bg-primary flex-grow-1">Flex item 3</p> </p>
使用 .flex-shrink-1 用于设置子元素的收缩规则。