

新闻资讯
技术学院本文详解如何使用 bootstrap 4 原生栅格系统构建真正响应式的卡片布局——在超大屏(≥1200px)显示 4 列、平板(≥768px)显示 2 列、手机(
Bootstrap 4 的栅格系统是实现响应式卡片布局最简洁、最可
靠的方式。与其覆盖 .card 的 display: flex 或硬写 width: calc(25% - 16px) 等易出错的 CSS,不如*让卡片成为栅格列(`.col-`)的子容器**——由 Bootstrap 自动管理断点、间距、换行与响应逻辑。
核心原则:不要给 .card 设定固定宽度或 flex-basis,而应将其包裹在语义化栅格列中。例如:
Bootstrap 会按“移动优先”规则自动向下兼容:xl 断点生效时,md 和 col-12 不再触发;小屏下则逐级回退至 col-12。
移除冗余 CSS
删除原代码中干扰栅格的自定义样式:
/* ❌ 删除这些 —— 它们会破坏 Bootstrap 栅格计算 */
#cardsContainer { display: flex; flex-wrap: wrap; }
.card { width: calc(25% - 16px); flex-basis: 25%; }
.row { margin: 0 -5px; }Bootstrap 的 .row 已内置负边距抵消 .col-* 的 padding,无需额外干预。
合理添加间距
使用 Bootstrap 内置间距工具类(如 p-1 p-md-3 m-1 m-md-2),而非 margin-bottom 或 padding-bottom 手动控制:
必须声明 viewport 元标签
否则移动端将忽略所有响应式断点:
卡片高度一致性(可选但推荐)
若卡片内容长度不一,添加 h-100 类确保视觉整齐:
配合 d-flex flex-column 可让按钮等元素底部对齐。
@@##@@
| 屏幕宽度 | 每行卡片数 | 实现方式 |
|---|---|---|
| 1 | col-12 | |
| ≥ 768px (md) | 2 | col-md-6 |
| ≥ 1200px (xl) | 4 | col-xl-3(最高优先级) |
只需一套 HTML 结构,零 JS,无额外 CSS,即可达成专业级响应式卡片网格。这才是 Bootstrap “约定优于配置”的设计哲学本质——用语义化类名代替手工布局,让开发更专注业务,而非像素调试。