gpt4 book ai didi

html - 在网格布局中插入全宽 block

转载 作者:太空宇宙 更新时间:2023-11-04 00:38:48 24 4
gpt4 key购买 nike

我正在创建 Google Images 不久前就有的页面布局。在所选图像下有一个带有大截面的图像网格。我很好奇是否可以使用 css disaply: grid 属性标记此页面。

grid page template

起初我做了一个三列的容器。一切都很棒:

.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 20px;
}

.item {
border: 1px solid;
height: 20px;
}
<div class="container">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>

但我不知道如何在这个网格中插入描述 block 。我不确定这是否可能。我将通过 display: none | 切换描述 block 。图片和行数未知。

.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 20px;
}

.item {
border: 1px solid;
height: 20px;
}

.item__description {
border: 1px solid red;
height: 10px;
}
<div class="container">
<div class="item">
<div class="item__description">Description of the first item</div>
</div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item__description">Description of the last item. No matter where to place this description: inside or outside 'item' block</div>
</div>

想法是在没有任何 js DOM 操作的情况下创建这个布局。

最佳答案

.container 上设置 grid-auto-flow: row dense;。将 .item__description 移到 item 之外,并在其上设置 grid-column: 1/span 3;

.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-flow: row dense;
grid-gap: 20px;
}

.item {
border: 1px solid;
height: 20px;
}

.item__description {
grid-column: 1 / span 3;
border: 1px solid red;
height: 20px;
}
<div class="container">
<div class="item"></div>
<div class="item__description">Description of the first item</div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item__description">Description of the last item. No matter where to place this description: inside or outside 'item' block</div>
</div>

这也适用于显示切换(悬停元素):

.container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-auto-flow: row dense;
grid-gap: 20px;
}

.item {
border: 1px solid;
height: 20px;
}

.item__description {
display: none;
grid-column: 1 / span 3;
border: 1px solid red;
height: 20px;
}

.item:hover + .item__description {
display: block;
}
<div class="container">
<div class="item">Hover Me 1</div>
<div class="item__description">Description of the item 1</div>
<div class="item">Hover Me 2</div>
<div class="item__description">Description of the item 2</div>
<div class="item">Hover Me 3</div>
<div class="item__description">Description of the item 3</div>
<div class="item">Hover Me 4</div>
<div class="item__description">Description of the item 4</div>
</div>

关于html - 在网格布局中插入全宽 block ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58766765/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com