You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap网格系统大屏下每行显示6个而非预期3个问题排查

问题原因排查
  • 核心错误是违反了Bootstrap栅格系统的结构规则:所有col-*类的元素必须嵌套在带有row类的容器内才能正常按比例分配宽度、自动换行。你当前直接将col-lg-4放在自定义的.bookshelf容器中,同时给.bookshelf设置了display: flex且没有配置flex-wrap: wrap,导致6个区块全部挤在同一行,宽度被强制压缩为容器的1/6,表现类似col-lg-2的效果。
  • 第二个问题是你没有给区块设置固定的高宽比,所以即使宽度正确,区块也会是矩形而非你需要的正方形。
  • 额外注意:你给每个区块设置了20px的边框,Bootstrap栅格默认用box-sizing: border-box计算宽高,边框会被包含在你设置的col-lg-4宽度内,不会额外撑宽,调整样式时可留意该属性的影响。
修复方案
  1. 调整HTML结构,在.bookshelf内部嵌套一层row容器包裹所有区块,同时将语义不合适的span标签改为div:
<div class="bookshelf">
  <div class="row w-100 m-0">
    <div id="section1" class="col-sm-6 col-lg-4"></div>
    <div id="section2" class="col-sm-6 col-lg-4"></div>
    <div id="section3" class="col-sm-6 col-lg-4"></div>
    <div id="section4" class="col-sm-6 col-lg-4"></div>
    <div id="section5" class="col-sm-6 col-lg-4"></div>
    <div id="section6" class="col-sm-6 col-lg-4"></div>
  </div>
</div>
  1. 修改CSS样式:移除.bookshelf的display: flex,或者保留的话补充flex-wrap: wrap,同时给区块添加高宽比配置实现正方形:
.bookshelf {
    background-color: #564E52;
    width: 1100px;
    height: 700px;
    /* 移除display: flex; 或者补充flex-wrap: wrap; */
    margin: 100px auto 100px auto;
    border: 20px solid #7F5822;
}
/* 新增正方形样式 */
.col-sm-6.col-lg-4 {
    aspect-ratio: 1/1;
}
@media (max-width: 800px){
    .bookshelf{
        width: 900px;
        height: 500px;
    }
}
/* 原有区块的边框样式可正常保留 */

修复后大屏下会自动每行显示3个正方形区块,小屏(sm断点以下)每行显示2个,符合你的需求。

内容的提问来源于stack exchange,提问作者Nyao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 15:15:04