【发布时间】:2020-06-25 08:39:30
【问题描述】:
我有这个网格,(通常)您可以在其中选择一个图块。选定的图块应该具有透明的蓝色覆盖层。当调整网格宽度时,如何在网格中制作图像叠加层并保持其容器的宽度?
这样:
我制作了.tile__overlay position: absolute;,乍一看还不错。但这意味着我失去了响应能力,这意味着当图块小于其最大尺寸时,叠加层不会调整到其父尺寸。
.grid {
display: grid;
grid-gap: 6px;
max-width: 306px;
grid-template-columns: minmax(min-content, 150px) minmax(min-content, 150px);
}
.tile {
padding: 0;
border: 0;
max-height: 150px;
max-width: 150px;
}
.tile__image {
height: 100%;
width: 100%;
max-height: 150px;
max-width: 150px;
display: block;
object-fit: contain;
}
.tile__overlay {
width: 100%;
height: 100%;
background-color: rgba(29, 151, 255, 0.9);
}
<div class="grid">
<button class="tile" type="button">
<img src="https://i.picsum.photos/id/1/150/150.jpg" alt="">
</button>
<button class="tile" type="button">
<img src="https://i.picsum.photos/id/18/150/150.jpg" alt="">
</button>
<button class="tile" type="button">
<img src="https://i.picsum.photos/id/33/150/150.jpg" alt="">
<div class="tile__overlay" />
</button>
<button class="tile" type="button">
<img src="https://i.picsum.photos/id/47/150/150.jpg" alt="">
</button>
</div>
【问题讨论】:
-
我昨天对此发表了评论,并为您提供了一个工作示例。 codesandbox.io/s/… 。提示是:绝对/相对。我什至添加了一个计数器来显示您可以在中间添加文本您的副本:stackoverflow.com/questions/60662044/responsive-grid-overlay,您可以使用此处的代码进行编辑,因此可以重新打开它