Bootstrap 4 网格基础

Bootstrap 4 网格系统

Bootstrap 提供了一套响应式、移动设备优先的流式网格系统,随着屏幕或视口(viewport)尺寸的增加,系统会自动分为最多 12 列。

我们也可以根据自己的需要,定义列数:

跨度 1 跨度 1 跨度 1 跨度 1 跨度 1 跨度 1 跨度 1 跨度 1 跨度 1 跨度 1 跨度 1 跨度 1
跨度 4 跨度 4 跨度 4
跨度 4 跨度 8
跨度 6 跨度 6
跨度 12

Bootstrap 4 的网格系统是响应式的,列会根据屏幕大小自动重新排列。

请确保每一行中列的总和等于或小于 12。


网格类

Bootstrap 4 网格系统有以下 5 个类:

  • .col- 手机 - 屏幕宽度小于 576px
  • .col-sm- 平板 - 屏幕宽度等于或大于 576px
  • .col-md- 桌面显示器 - 屏幕宽度等于或大于 768px
  • .col-lg- 大桌面显示器 - 屏幕宽度等于或大于 992px
  • .col-xl- 特大桌面显示器 - 屏幕宽度等于或大于 1200px

可以将上面的类组合起来创建更具动态性和灵活性的布局。

提示: 每个类都会向上扩展,因此如果您想为 smmd 设置相同的宽度,只需指定 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 教程

下表总结了 Bootstrap 网格系统如何在不同设备上工作的:

超小设备
<576px
平板
≥576px
桌面显示器
≥768px
大桌面显示器
≥992px
超大桌面显示器
≥1200px
容器最大宽度 None (auto) 540px 720px 960px 1140px
Class 前缀 .col- .col-sm- .col-md- .col-lg- .col-xl-
列数量和 12
间隙宽度 30px (一个列的每边分别 15px)
可嵌套 Yes
列排序 Yes

Bootstrap 4 网格的基本结构

以下代码为 Bootstrap 4 网格的基本结构:

<!-- 控制列宽,以及它们在不同设备上的显示方式 -->
<div class="row">
  <div class="col-*-*"></div>
  <div class="col-*-*"></div>
</div>
<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>

第一个例子:创建一行 (<div class="row">)。然后, 添加是需要的列 (.col-*-* 类中设置)。 第一个星号 (*) 表示响应的设备: sm, md, lg 或 xl, 第二个星号 (*) 表示一个数字, 同一行的数字相加为 12。

第二个例子: 不在每个 col上添加数字,让 bootstrap 自动处理布局,同一行的每个列宽度相等 两个 "col" ,每个就为 50% 的宽度。三个 "col"每个就为 33.33% 的宽度,四个 "col"每个就为 25% 的宽度,以此类推。同样,你可以使用 .col-sm|md|lg|xl 来设置列的响应规则。

下面我们收集了一些 Bootstrap4 网格布局的示例。



创建三个相等宽度的列,Bootstrap 自动布局

.col
.col
.col

以下示例显示了如何在所有设备和屏幕宽度上创建三个等宽列:

实例

<div class="row">
  <div class="col">.col</div>
  <div class="col">.col</div>
  <div class="col">.col</div>
</div>
亲自试一试 »

等宽响应式列

.col-sm-3
.col-sm-3
.col-sm-3
.col-sm-3

以下实例演示了如何在平板及更大屏幕上创建等宽度的响应式列。

在移动设备上,即屏幕宽度小于 576px 时,四个列将会上下堆叠排版:

实例

<div class="row">
  <div class="col-sm-3">.col-sm-3</div>
  <div class="col-sm-3">.col-sm-3</div>
  <div class="col-sm-3">.col-sm-3</div>
  <div class="col-sm-3">.col-sm-3</div>
</div>
亲自试一试 »

不等宽响应式列

.col-sm-4
.col-sm-8

以下实例演示了在平板及更大屏幕上创建不等宽度的响应式列。

在移动设备上,即屏幕宽度小于 576px 时,两个列将会上下堆叠排版:

实例

<div class="row">
  <div class="col-sm-4">.col-sm-4</div>
  <div class="col-sm-8">.col-sm-8</div>
</div>
亲自试一试 »

提示: 在本教程的后面部分,您将了解有关 网格系统 的更多信息。