我想创建一个3父div:A B C,每个父级都有一个网格系统作为子级,当我从服务器获得A1时,我必须把它放在A列中,B1放在B列中,以此类推,但是当我在同一列中获得超过3个子级时,我应该在父级中创建另一个列,我正在尝试使用css网格,但我不知道如何实现这个机制。这就是我所尝试的:
.children {
display: grid;
grid-template-columns: repeat(2, 1fr);
}
<div class="parent">
<div>
<span style="background: orange;">A</span>
<div class="children">
<div>A1</div>
<div>A2</div>
<div>A3</div>
</div>
</div>
<div>
<span style="background: red;">B</span>
<div class="children">
<div>B1</div>
<div>B2</div>
<div>B3</div>
</div>
</div>
<div>
<span style="background: green;">C</span>
<div class="children">
<div>C1</div>
<div>C2</div>
<div>C3</div>
</div>
</div>
</div>
结果是这样的:enter image description here
例如,当我添加A4时,它应该是这样的:enter image description here
正如你所看到的,A列的宽度已经改变了,因为我们得到了4个元素,我想在所有列A B C中使用相同的机制。你知道我怎样才能做到这一点吗?
2条答案
按热度按时间ilmyapht1#
更新答案:
在
additional-cols
div中添加任何其他列,下面是一个示例:Stackblitz Example
另一种解决方案是使用2列乘1帧重复子项:
这里是Stackblitz上的another example
fgw7neuy2#
一些网格内的网格;另一个div(D)的显示方式是由第一个网格控制的--所以就像我在这里看到的一样,它会在这三个网格的下面换行,例如,当添加A4时,它也会这样做--只要改变第一个网格的列宽就可以了;