You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让Flex元素垂直重叠,实现纸牌堆叠效果

实现纸牌垂直堆叠(接龙式)的问题

需要实现类似接龙纸牌的垂直堆叠效果——底部卡片完全显示,上方每张卡片只露出一小部分。我之前参考方法实现了水平堆叠,效果正常,但转换为垂直堆叠时遇到了问题。

可行的水平堆叠代码

.cards {
  display: flex;
  align-content: center;
  max-width: 35em;
}

.cardWrapper {
  /*overflow: hidden;*/  /*using width shows better overlap*/
  min-width: 3.5em;
}

.cardWrapper:last-child, .cardWrapper:hover {
    /*overflow: visible;*/ 
    min-width: 10.5em; /*full width + 2*padding */
}

.card {
    width: 10em;
    min-width: 10em;
    height: 6em;
    border-radius: 0.5em;
    border: solid #666 1px;
    background-color: #ccc;
    padding: 0.25em;
  
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
<div class="cards">
  <div class="cardWrapper">
    <div class="card">card 1 blah blah blah</div>
  </div>
  <div class="cardWrapper">
    <div class="card">card 2 blah blah blah</div>
  </div>
  <div class="cardWrapper">
    <div class="card">card 3 blah blah blah</div>
  </div>
  <div class="cardWrapper">
    <div class="card">card 4 blah blah blah</div>
  </div>
  <div class="cardWrapper">
    <div class="card">card 5 blah blah blah</div>
  </div>
</div>

垂直堆叠的尝试问题

我尝试将flex主轴改为垂直方向,设置了flex-direction: column,但未达到预期效果:

  • 预期结果:整齐的垂直堆叠
  • 实际结果:卡片以全高排列成一列

还尝试过其他方法,均无效:

  • 给.cardWrapper添加display: flex; flex-direction: column; justify-content: center; align-items: center;,仅将列移至屏幕中央,无堆叠效果
  • 将.card的flex-direction改回默认row,无明显变化

尝试的垂直堆叠代码如下:

.cards {
  display: flex;
  flex-direction: column; /*change main axis to vertical, but now no stacking*/
  align-content: center;
  max-width: 35em;
}

.cardWrapper {
  /*overflow: hidden;*/  /*using width shows better overlap*/
  min-height: 2em;
}

.cardWrapper:last-child, .cardWrapper:hover {
    /*overflow: visible;*/ 
    min-height: 6.5em; /* full height + 2*padding*/
}

.card {
    width: 10em;
    min-width: 10em;
    height: 6em;
    border-radius: 0.5em;
    border: solid #666 1px;
    background-color: #ccc;
    padding: 0.25em;
  
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}
<div class="cards">
  <div class="cardWrapper">
    <div class="card">card 1 blah blah blah</div>
  </div>
  <div class="cardWrapper">
    <div class="card">card 2 blah blah blah</div>
  </div>
  <div class="cardWrapper">
    <div class="card">card 3 blah blah blah</div>
  </div>
  <div class="cardWrapper">
    <div class="card">card 4 blah blah blah</div>
  </div>
  <div class="cardWrapper">
    <div class="card">card 5 blah blah blah</div>
  </div>
</div>

内容的提问来源于stack exchange,提问作者IRequireAssistance

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 16:59:52