Bootstrap 4 网格系统
Bootstrap 4 网格系统
Bootstrap 的网格系统允许页面上最多12列。
如果不想单独使用所有 12 列,可以将这些列组合在一起以创建更宽的列:
跨度 1 | 跨度 1 | 跨度 1 | 跨度 1 | 跨度 1 | 跨度 1 | 跨度 1 | 跨度 1 | 跨度 1 | 跨度 1 | 跨度 1 | 跨度 1 |
跨度 4 | 跨度 4 | 跨度 4 | |||||||||
跨度 4 | 跨度 8 | ||||||||||
跨度 6 | 跨度 6 | ||||||||||
跨度 12 |
Bootstrap 的网格系统是响应式的,列会根据屏幕大小自动重新排列。在大屏幕上,将内容组织成三列可能会更好,在小屏幕上,内容项组织成一列效果会更好。
Grid 网格类
Bootstrap 4 网格系统有以下 5 个类:
.col-
手机 - 屏幕宽度小于 576px.col-sm-
平板 - 屏幕宽度等于或大于 576px.col-md-
桌面显示器 - 屏幕宽度等于或大于 768px.col-lg-
大桌面显示器 - 屏幕宽度等于或大于 992px.col-xl-
特大桌面显示器 - 屏幕宽度等于或大于 1200px
可以将上面的类组合起来创建更具动态性和灵活性的布局。
提示: 每个类都会向上扩展,因此如果您想为
sm
和 md
设置相同的宽度,只需指定 sm
即可。
网格系统规则
Bootstrap4 网格系统规则:
- 网格每一行需要放在设置了
.container
(固定宽度) 或.container-fluid
(全屏宽度) 类的容器中,这样就可以自动设置一些外边距与内边距。 - 使用行来创建水平的列组。
- 内容需要放置在列中,并且只有列可以是行的直接子节点。
- 预定义的类如 .row 和 .col-sm-4 可用于快速制作网格布局。
- 列通过填充创建列内容之间的间隙。 这个间隙是通过 .rows 类上的负边距设置第一行和最后一列的偏移。
- 网格列是通过跨越指定的 12 个列来创建。 例如,设置三个相等的列,需要使用用三个.col-sm-4 来设置。
- Bootstrap 3 和 Bootstrap 4 最大的区别在于 Bootstrap 4 现在使用 flexbox(弹性盒子) 而不是浮动。Flexbox 的一大优势是,没有指定宽度的网格列将自动设置为等宽与等高列 。 如果您想了解有关Flexbox的更多信息,可以阅读我们的 CSS Flexbox 教程。
请注意,Flexbox 在 IE9 及早期版本中不受支持。
如果您需要IE8-9支持,请使用 Bootstrap 3 。它是 Bootstrap 最稳定的版本,对于关键的错误修复和文档更改,团队仍然支持它。但是,不会向其添加任何新功能。
Bootstrap 4 网格的基本结构
以下代码为 Bootstrap 4 网格的基本结构:
<!-- 控制列宽,以及它们在不同设备上的显示方式 -->
<div class="row">
<div class="col-*-*"></div>
<div class="col-*-*"></div>
<div class="col-*-*"></div>
</div>
<!-- 或者让 Bootstrap 自动处理布局 -->
<div class="row">
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
<div class="col"></div>
</div>
亲自试一试 »
第一个例子:创建一行 (<div
class="row">
)。然后, 添加是需要的列
(.col-*-*
类中设置)。 第一个星号 (*)
表示响应的设备: sm, md, lg 或 xl, 第二个星号 (*) 表示一个数字, 同一行的数字相加为 12。
第二个例子: 不在每个 col
上添加数字,让 bootstrap 自动处理布局,同一行的每个列宽度相等
两个 "col"
,每个就为 50% 的宽度。三个 "col"
每个就为 33.33% 的宽度,四个 "col"
每个就为 25% 的宽度,以此类推。同样,你可以使用 .col-sm|md|lg|xl
来设置列的响应规则。
网格选项
下表总结了 Bootstrap 4 网格系统在不同屏幕尺寸下的工作原理:
超小设备 (<576px) | 小型设备 (>=576px) | 中型设备 (>=768px) | 大型设备 (>=992px) | 特大设备 (>=1200px) | |
---|---|---|---|---|---|
Class 前缀 | .col- |
.col-sm- |
.col-md- |
.col-lg- |
.col-xl- |
网格行为 | 始终保持水平 | 以折叠开始,断点以上是水平的 | 以折叠开始,断点以上是水平的 | 以折叠开始,断点以上是水平的 | 以折叠开始,断点以上是水平的 |
最大容器宽度 | None (auto) | 540px | 720px | 960px | 1140px |
适用于 | Portrait phones | Landscape phones | 平板电脑 | 笔记本电脑 | 笔记本电脑和台式机 |
# 列数 | 12 | 12 | 12 | 12 | 12 |
间隙宽度 | 30px (每列两侧各 15px) | 30px (每列两侧各 15px)) | 30px (每列两侧各 15px)) | 30px (每列两侧各 15px)) | 30px (每列两侧各 15px)) |
可嵌套 | Yes | Yes | Yes | Yes | Yes |
偏移量 | Yes | Yes | Yes | Yes | Yes |
列排序 | Yes | Yes | Yes | Yes | Yes |
实例
下一章将展示不同设备和屏幕宽度的网格系统实例: