我想把box 2
放在另外两个盒子的一半上面,但是,即使显式地定义了grid-template-columns
对1fr
的属性,它也会自动创建另一列。
index.html
<div class="grid-overlap">
<div class="box">1</div>
<div class="box">2</div>
<div class="box">3</div>
</div>
style.scss
.grid-overlap {
max-width: 40rem;
width: 95%;`your text`
margin: 2rem auto;
gap: 1rem;
display: grid;
grid-template-rows: repeat(4, 1fr);
grid-template-columns: 1fr;
.box {
width: 300px;
height: 300px;
margin: 0 auto;
text-align: center;
font-size: 3rem;
}
.box:nth-child(1) {
grid-row: 1 / 3;
background-color: dodgerblue;
}
.box:nth-child(2) {
background-color: red;
grid-row: 2 / 4;
z-index: 100;
}
.box:nth-child(3) {
grid-row: 3 / 5;
background-color: tomato;
}
}
先谢了。
2条答案
按热度按时间wmtdaxz31#
我给出了一个重叠的例子,试着看看它是如何工作的,并在你的用例中使用它。
wqlqzqxt2#
查看网格,我们可以看到第二个方块从第一个方块的中间开始,最后一个方块位于第一个方块的四分之一处和四分之三处。
这将产生宽度为6、高度为7的方形单元格。
由于不可能同时将网格尺寸设置为300px,并将网格宽度定义为rems(和%单位),因此此代码片段删除了300px设置,并将整个网格设置为问题中定义的宽度和纵横比6/7。
请注意,网格间隙未设置(默认为0),因为问题中给出的图片中未显示间隙。
如果重要的尺寸是300px,那么使用它们来设置整个网格的宽度。