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

如何解决翻转卡片内.putmenextTo div重叠,实现横向并排显示

解决翻转卡片内部div横向并排的问题

嘿,我懂你遇到的糟心事了——翻转卡片里的.putmenextTo div总叠在一起,试了好几种CSS布局都没搞定对吧?问题的核心其实出在你的CSS选择器范围上,咱们一步步来修复:

问题根源

你写的.card div选择器会匹配.card下所有层级的div元素,包括卡片的正面/背面,以及它们内部的子div。而这个选择器里设置了position: absolute,直接导致内部的.putmenextTo div全部脱离文档流,自然会堆叠在一起。

修复方案

1. 缩小绝对定位的应用范围

把.card div修改为.card > div,这样只会选中.card的直接子元素(也就是.flipcardFront和.flipcardBack),不会影响它们内部的子div:

.card > div { 
    border-radius: 15px; 
    display: block; 
    height: 100%; 
    width: 100%; 
    line-height: 26px; 
    color: white; 
    text-align: center; 
    font-weight: bold; 
    font-size: 10px; 
    position: absolute; 
    -webkit-backface-visibility: hidden; 
    -moz-backface-visibility: hidden; 
    -o-backface-visibility: hidden; 
    backface-visibility: hidden; 
}

2. 给内部div设置横向布局

推荐用Flexbox实现横向并排,简单还兼容性好。给卡片的正面和背面容器添加display: flex,再给.putmenextTo设置flex属性分配空间:

.flipcardFront, .flipcardBack {
    display: flex;
    justify-content: space-around; /* 让子元素均匀分布 */
    align-items: center; /* 垂直居中 */
}

.putmenextTo {
    flex: 1; /* 让每个子div平分父容器宽度 */
    margin: 0 2px; /* 加一点间距避免太挤 */
}

如果你更习惯用inline-block,也可以这样设置:

.flipcardFront, .flipcardBack {
    white-space: nowrap; /* 防止子元素换行 */
}

.putmenextTo {
    display: inline-block;
    width: 31%; /* 留一点间距,三个div各占约1/3宽度 */
    white-space: normal; /* 恢复文本正常换行 */
}

修改后的完整代码

.flipcardHold { 
    margin: 10px; 
    height: 30px; 
    width: 300px; /* 加宽容器,给子div足够显示空间 */
    position: relative; 
    -webkit-perspective: 800px; 
    -moz-perspective: 800px; 
    -o-perspective: 800px; 
    perspective: 800px; 
}
.card { 
    width: 100%; 
    height: 100%; 
    position: absolute; 
    -webkit-transition: -webkit-transform 1s; 
    -moz-transition: -moz-transform 1s; 
    -o-transition: -o-transform 1s; 
    transition: transform 1s; 
    -webkit-transform-style: preserve-3d; 
    -moz-transform-style: preserve-3d; 
    -o-transform-style: preserve-3d; 
    transform-style: preserve-3d; 
    -webkit-transform-origin: 50% 50%; 
}
.card > div { 
    border-radius: 15px; 
    display: block; 
    height: 100%; 
    width: 100%; 
    line-height: 26px; 
    color: white; 
    text-align: center; 
    font-weight: bold; 
    font-size: 10px; 
    position: absolute; 
    -webkit-backface-visibility: hidden; 
    -moz-backface-visibility: hidden; 
    -o-backface-visibility: hidden; 
    backface-visibility: hidden; 
}
.card .flipcardFront { 
    background: red; 
    display: flex;
    justify-content: space-around;
    align-items: center;
}
.card .flipcardBack { 
    background: blue; 
    -webkit-transform: rotateY( 180deg); 
    -moz-transform: rotateY( 180deg); 
    -o-transform: rotateY( 180deg); 
    transform: rotateY( 180deg); 
    display: flex;
    justify-content: space-around;
    align-items: center;
}
.card.flipped { 
    -webkit-transform: rotateY( 180deg); 
    -moz-transform: rotateY( 180deg); 
    -o-transform: rotateY( 180deg); 
    transform: rotateY( 180deg); 
}
.putmenextTo {
    flex: 1;
    margin: 0 2px;
}
<script src="https://code.jquery.com/jquery-3.4.0.js" integrity="sha256-DYZMCC8HTC+QDr5QNaIcfR7VSPtcISykd+6eSmBW5qo=" crossorigin="anonymous"> </script>
<button id="flipbutton">flip the card</button>
<div class="flipcardHold">
  <div class="card">
    <div class="flipcardFront">
      <div id="Frontinnerdiv1" class="putmenextTo">Front First div</div>
      <div id="Frontinnerdiv2" class="putmenextTo">Front Second div</div>
      <div id="Frontinnerdiv3" class="putmenextTo">Front Third div</div>
    </div>
    <div class="flipcardBack">
      <div id="Backinnerdiv1" class="putmenextTo">Back First div</div>
      <div id="Backinnerdiv2" class="putmenextTo">Back Second div</div>
      <div id="Backinnerdiv3" class="putmenextTo">Back Third div</div>
    </div>
  </div>
</div>

<script>
$("#flipbutton").click(function() {
  $('.card').toggleClass('flipped');
});
</script>

我还把.flipcardHold的宽度从100px调到了300px,确保三个子div有足够空间显示内容,你可以根据需求再调整这个数值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:38:34