我正在尝试在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>