【发布时间】:2019-11-30 13:50:19
【问题描述】:
我正在尝试使用 CSS 网格创建一个两列布局,其中项目沿列方向流动,我设法创建了布局,但问题是当子项目是动态的时它会中断。这是我尝试过的sn-p。所以基本上grid-template-rows: repeat(4, auto); 应该是动态的,它应该是项目总数的一半。有什么方法可以通过 CSS 实现。 Click here for fiddle
<div class="grid-container">
<div class="item1">1</div>
<div class="item2">2</div>
<div class="item3">3</div>
<div class="item4">4</div>
<div class="item5">5</div>
<div class="item6">6</div>
<div class="item7">7</div>
<div class="item8">8</div>
</div>
.grid-container {
display: grid;
grid-template-columns: 50% 50%;
grid-template-rows: repeat(4, auto);
grid-auto-flow: column;
grid-gap: 10px;
background-color: #2196F3;
padding: 10px;
}
.grid-container > div {
background-color: rgba(255, 255, 255, 0.8);
text-align: center;
padding: 20px 0;
font-size: 30px;
}
【问题讨论】:
-
CSS-Grid 无法做到这一点——没有“平衡”功能。您需要知道行数。
-
我建议CSS-Columns 确实有一个“平衡”选项。
-
@Paulie_D 这是有道理的。但是浏览器兼容性如何?如果项目总数是奇数,则中间项目将在列之间中断。
-
@VivekrajKR 尝试使用分叉的小提琴 jsfiddle.net/hLnvk2b8/1 ,这就是为什么 inline-block + width:100%;那里是为孩子们准备的 ;) 关于支持,请参阅caniuse.com/#search=column 以查看。不支持的网格或列以相同的方式中断,元素堆叠。