我有三列和一行,我想把每个网格元素放入其中一个结果单元格中。这就是我想要的,使用三个容器元素:
main {
display: grid;
grid-template-columns: 33% 33% auto;
grid-gap: 15px;
}
.container {
background-color: orange;
}
.element {
transition: height 0.5s;
margin: 15px;
height: 100px;
background-color: grey;
}
.element:hover {
height: 200px;
}
<main>
<div class="container">
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
</div>
<div class="container">
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
</div>
<div class="container">
<div class="element"></div>
<div class="element"></div>
<div class="element"></div>
</div>
</main>
我知道可以使用三个容器来实现,但我想避免使用任何不是真正“必需”的东西。
使用多行并将元素从一行扩展到两行或三行不如我上面发布的示例那样“平滑”。但是,使用多行并仅调整元素大小会调整整个行的大小,这会影响下一行的位置。
解决方案是将同一列的每个元素放入同一个单元格中。这样最多只有一行,并且每次调整元素大小时,它只会影响同一列中的元素位置,这正是我想要的。
将多个元素放入同一个单元格时的问题在于它们会重叠在一起,我找不到停止它们重叠的方法。
那么,有没有办法只使用CSS网格布局在同一个单元格中放置多个元素而不重叠呢?