【发布时间】:2019-07-15 04:46:37
【问题描述】:
我有一个默认情况下看起来如下的表格(最多 20 个类别,每个类别最多 30 个项目;每个项目将由一张卡片表示):
现在我想让用户选择切换到水平布局,应该如下所示。
我从 JSFiddle 开始:https://jsfiddle.net/stefanwalther/1uzh836j/15/
.status-container {
}
.row {
display: flex;
flex-direction: row;
flex-wrap: wrap;
}
.col {
display: flex;
flex-direction: column;
flex: 1;
border-width: 1px;
border-style: solid;
border-color: #ccc;
padding: 3px;
}
.header {
background-color: #ccc;
}
<div>
<div class="row header">
<div class="col">
Category 1
</div>
<div class="col">
Category 2
</div>
<div class="col">
Category 3
</div>
</div>
<div class="row">
<div class="col">
Item 1.1
</div>
<div class="col">
Item 2.1
</div>
<div class="col">
Item 3.1
</div>
</div>
<div class="row">
<div class="col">
Item 1.2
</div>
<div class="col">
Item 2.2
</div>
<div class="col">
Item 3.2
</div>
</div>
</div>
不幸的是,我被卡住了,不知道选择哪种方法(CSS-Grid,Flex-Box,?)。
【问题讨论】:
-
CSS-Grid 是最佳解决方案,因为它使跨行变得更加简单,但我怀疑它是否可以在不包装 div 的情况下进行管理。问题是跨越所需的未确定行数...如果您不知道每个类别有多少行,则无法设置跨度数。
-
@Paulie_D 我没有让它与 CSS-Grid 一起使用 - 我认为 flex 在这里效果更好,如下面的公认答案所示。但是谢谢你的评论。