Bootstrap网格系统基于Flexbox,由container、row、col三层结构组成,通过五种断点类前缀实现响应式布局。

Bootstrap 的网格系统是其布局功能的核心,它基于 Flexbox 构建(从 Bootstrap 4 开始),能够帮助开发者快速创建响应式、适应不同设备屏幕的网页布局。下面是对 Bootstrap 网格系统的详细解析,涵盖结构原理、类名规则、断点设置和实际用法。
网格系统的基本结构
Bootstrap 网格由容器(container)、行(row)和列(col)三个基本层级组成:
- container:作为最外层容器,用于包裹整个网格内容,提供居中或全宽布局。有两类容器:.container(定宽居中)和 .container-fluid(100% 宽度)。
- row:必须放在 container 内,用于包裹列(col)。row 使用负边距抵消 col 的左右 padding,确保内容对齐。
- col:实际的内容列,放置在 row 内。col 类自动分配宽度,并通过 padding 提供间距(即 gutter)。
基本结构示例:
列 1列 2
断点与响应式类前缀
Bootstrap 定义了五个响应式断点,每个对应一个类前缀,用于控制不同屏幕尺寸下的列行为:
立即学习“前端免费学习笔记(深入)”;
- .col-:适用于所有设备(超小屏,
- .col-sm-:小屏及以上(≥576px)
- .col-md-:中屏及以上(≥768px)
- .col-lg-:大屏及以上(≥992px)
- .col-xl-:超大屏及以上(≥1200px)
- .col-xxl-:超超大屏(≥1400px,仅 Bootstrap 5)
你可以为同一列设置多个断点类,实现精细的响应式控制。例如:
...
这表示:在手机上占满整行(12列),平板以上占6列,桌面以上占4列。
列宽设置方式
Bootstrap 提供多种方式定义列宽:
- 等分布局:使用 .col 让列平均分配剩余空间。例如三个 .col 子元素将平分一行。
- 固定栅格数:使用 .col-{1-12} 指定占据的列数。总行默认为12列。
- 响应式栅格:结合断点前缀,如 .col-md-4 表示中屏以上占4列。
- 自动宽度:使用 .col-auto 让列根据内容自适应宽度。
- 偏移列:使用 .offset-{breakpoint}-{columns} 控制列左侧留空。如 .offset-md-2 在中屏左移2列。
示例:三列布局,中间列偏移一列
内容右侧内容
实用技巧与注意事项
- 嵌套网格:可以在 .col 内部再次使用 .row 实现嵌套布局,内部 row 需包含新的 col。
- 垂直对齐:通过 .align-items-start、.align-items-center 等控制行内列的垂直对齐。
- 水平分布:使用 .justify-content-between 或 .justify-content-center 调整列的水平排列。
- 列间距(gutter):默认有 1.5rem 左右 padding,可通过 .g-0 移除,或使用 .gx-* / .gy-* 单独控制水平/垂直间距。
- 超出12列处理:如果一行中列数超过12,多余的列会自动换行到下一行。
基本上就这些。掌握 container → row → col 的结构逻辑,理解断点和类命名规则,就能灵活运用 Bootstrap 网格系统构建复杂的响应式页面布局。不复杂但容易忽略细节,比如嵌套时仍需 row 包裹 col,以及 offset 不适用于 .col-12 全宽列等。










