Bootstrap卡片无法在页面内并排显示的布局问题求解
问题根源
两个卡片堆叠是因为没遵守Bootstrap栅格的基础使用规则:
- 所有带
col-*类的列元素,必须是.row容器的直接子节点,栅格的弹性布局、宽度计算才会生效。你把蓝色卡片、深色评分矩阵卡片直接放在了#create-form容器下,外层没包.row,col-md-4的宽度设置根本没生效,卡片作为默认块级元素自然会上下堆叠。 - 你直接把
col-md-4类加在了.card组件上,栅格列自带的间距、布局规则没法正常作用在卡片组件上。 - 之前用空的
col-md-2占位留间距的写法完全多余,Bootstrap栅格自带左右槽宽(gutter),不需要靠空元素撑间距。
修复步骤
把这两个卡片的代码按下面的逻辑调整就行:
- 两个卡片外层统一包裹
.row容器,需要调整列间距就给.row加gx-*类,数值从1到5,数值越大列之间的空白越宽。 - 不要直接给卡片加
col-*类,在每个卡片外层套一层独立的列容器,把col-md-4类加在这层列容器上,卡片放在列容器内部。 - 删掉之前用来占位的空列,靠栅格自带槽宽留间距即可。
修改后的对应代码:
<div class="row gx-4 px-3"> <!-- 蓝色卡片 --> <div class="col-md-4"> <div class="card text-bg-primary mb-3"> <div class="card-header">Header</div> <div class="card-body"> <h5 class="card-title"></h5> <p class="card-text">Some quick example text to build on the card title and make up the bulk of the card's content.</p> </div> </div> </div> <!-- 深色评分矩阵卡片 --> <div class="col-md-4"> <div class="card text-bg-dark mb-3"> <div class="card-header">SCORING MATRIX</div> <div class="card-body"> <h5 class="card-title"></h5> <p class="card-text">This can be used to rate processes and experiences.</p> </div> </div> </div> </div>
补充说明
- 建议给页面所有内容外层套一层
.container或者.container-fluid容器,避免内容贴边、不同屏幕下布局错位。 - 如果需要小屏幕下也保持卡片并排,把
col-md-4替换成col-6即可,对应所有屏幕尺寸下每个卡片占一半宽度,中间自动留间距。 - 你之前第一组两个卡片能正常并排,就是因为外层包了
.row,列和卡片是嵌套结构,和这次的修复逻辑是一致的。
内容的提问来源于stack exchange,提问作者Prokrative
相关产品推荐
相关产品推荐

