Bootstrap栅格系统默认采用.container+.row+.col三件套实现响应式布局,需严格遵循结构嵌套规则(.col必须置于.row内,.row必须置于.container内),并利用断点类名(如col-md-6)和内置工具类快速调整间距与对齐。
.container + .row + .col 三件套,5 分钟内搭出响应式栅格Bootstrap 的 Grid 系统不是“可选方案”,而是为快速布局设计的默认路径。它省去了手写 display: grid 或 float 兼容逻辑的调试时间,尤其适合后台管理页、活动页、表单页这类结构明确、需兼顾老浏览器的场景。
关键不是“学完再用”,而是照着模板改数字:
.container 包住整页内容(居中+响应式最大宽度).row 必须嵌套在 .container 内,负责创建水平轴(自动清除浮动 / flex wrap).col 必须放在 .row 里,不能直接塞进 .container —— 否则断点失效、间距错乱
主内容区
侧边栏
col-{breakpoint}-{n} 的命名逻辑Bootstrap 的列类名不是随机组合,而是有固定模式:col-[断点前缀]-[列数]。断点前缀决定“从哪个屏幕宽度开始生效”,列数是占满 12 等份中的几份。
常见断点含义:
col-:无前缀 → 所有设备都生效(col-6 = 始终占一半)col-sm-:≥576px(小屏手机横屏及以上)col-md-:≥768px(平板)col-lg-:≥992px(桌面)col-xl-:≥1200px(大桌面)实际用法要点:
col-12 col-md-6 col-lg-4 表示:手机全宽 → 平板占半 → 桌面占 1/3col-6)会覆盖更小断点的设置,注意覆盖顺序col-md-6,那在手机上会退化成 col-12(Bootstrap 默认行为),不是“不显示”栅格“看起来没对齐”是高频问题,90% 出在结构或类名误用,而不是 CSS 冲突。
.row 外层
.container 或 .container-fluid;裸用 .row 会导致左右 margin 负值溢出.col 直接放到了 .container 下——必须经过 .row 中转,否则 flex 布局不触发box-sizing 或设置了 padding/margin,Bootstrap 的列默认依赖 box-sizing: border-box
一个典型错误写法:
❌ 错:缺 .row ❌ 错:缺 .row
正确写法:
✅ 对
✅ 对
很多人一上来就加 style="margin-left: 20px",结果响应式断掉。Bootstrap 提供了大量已适配断点的间距/对齐工具类,比手写更稳。
ms-2(margin-left)、me-3(margin-right)、mt-0(margin-top: 0),数字对应 spacing scale(0–5)ps-2、pe-1 等,p = padding,s/e/t/b = start/end/top/bottomalign-items-center 加在 .row 上,让所有 .col 垂直居中
例如让两列等高且右侧列右对齐:
标题区域 操作按钮Bootstrap 的栅格不是黑盒,但它的价值恰恰在于“不用深挖原理也能可靠工作”。真正容易被忽略的是:断点类名叠加时的优先级、
.row 的强制包裹要求、以及工具类比自定义样式更适配响应式逻辑——这些细节卡住的不是技术,而是节奏。