我想展示一系列未知数量的扑克牌。为此,如果数量太多,它们将不得不重叠。我无法说服 flex box 在不缩小卡片的情况下重叠卡片。下面的例子缩小了卡片。我尝试 flex-shrink: 0
,但后来 max-width
没有得到尊重。
.cards {
display: flex;
max-width: 300px;
}
.card {
width: 50px;
height: 90px;
border: 1px solid black;
border-radius: 3px;
background-color: rgba(255, 0, 0, 0.4);
}
<div class='cards'>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
<div class='card'></div>
</div>
原文由 Michael Arrison 发布,翻译遵循 CC BY-SA 4.0 许可协议
下面是我如何使用 flexbox 来做到这一点。
请注意,从技术上讲,卡片并没有重叠,它们只是被剪裁了。但它们 看起来 像是重叠的。诀窍是将每张卡片包装在另一个带有溢出的元素中:隐藏。
环绕元素会缩小以适应可用空间,并在该空间中显示尽可能多的卡片。
我包含 :hover 规则只是为了展示如何从“堆栈”中间完全显示一张卡片,但在实际项目中,我可能会对选定的卡片而不是悬停的卡片执行此操作。