自动网格大小调整,允许在 CSS 中连续第 n 个最大值



我正在尝试在CSS网格中自动调整列的大小。就像如果我有一个孩子div,它将覆盖母div 的全部空间。但是,如果有多个子div,它将允许连续特定数量的子div .在这里,我使用的是CSS网格。但我做不到。这是我的代码

<div class="mother-div">
<div class="child-div>
</div>
<div class="child-div>
</div>
</div> 

.css

.child-div {
background-color: #257790;
height: 100px;
width: 100%;
}
.mother-div {
display: grid;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
grid-gap: 1em;
}

您正在寻找的内容几乎是自动的,网格几乎开箱即用。

您只需要将网格自动流动设置为您想要的方向

要限制每行的项目数,您需要使用第 n 个子选择器将它们设置为特定列

这种风格:

.child-div:nth-child(5n+1) {
grid-column: 1;
}

为 n 个值 0、1、2 等选择子项,在公式 5n+1 中给出值 1、6、11、16、...

所有这些子项将转到第 1 列,该列符合每行 5 个元素的要求。

.child-div {
background-color: #257790;
height: 50px;
width: 100%;
}
.child-div:nth-child(5n+1) {
grid-column: 1;
}
.child-div:nth-child(5n+2) {
grid-column: 2;
}
.child-div:nth-child(5n+3) {
grid-column: 3;
}
.child-div:nth-child(5n+4) {
grid-column: 4;
}
.child-div:nth-child(5n) {
grid-column: 5;
}
.mother-div {
margin: 10px;
width: 500px;
border: solid 3px black;
display: grid;
grid-gap: 1em;
grid-auto-flow: column; 
}
<div class="mother-div">
<div class="child-div">
</div>
</div> 
<div class="mother-div">
<div class="child-div">
</div>
<div class="child-div">
</div>
</div>
<div class="mother-div">
<div class="child-div">1
</div>
<div class="child-div">2
</div>
<div class="child-div">3
</div>
<div class="child-div">4
</div>
<div class="child-div">5
</div>
<div class="child-div">6
</div>
</div>

最新更新