请使用 css 实现卡片翻转的动画
参考答案:
可以使用 3D 变换(transform: rotateY) + **过渡动画(transition)**实现。
下面的例子,可以通过 hover 实现控制水平翻转:
html
<div class="card">
<div class="card-inner">
<div class="card-front">Front</div>
<div class="card-back">Back</div>
</div>
</div>css
.card {
width: 200px;
height: 300px;
perspective: 1000px; /* 创建 3D 视角 */
}
.card-inner {
width: 100%;
height: 100%;
transition: transform 0.6s;
transform-style: preserve-3d;
position: relative;
}
/* 触发翻转效果 */
.card:hover .card-inner {
transform: rotateY(180deg);
}
.card-front,
.card-back {
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
}
.card-front {
background: #fff;
color: #000;
}
.card-back {
background: #333;
color: #fff;
transform: rotateY(180deg);
}如果需要 上下翻转,只需将 rotateY 改为 rotateX 即可。
题目要点:
- 使用
perspective实现 3D 效果 card-inner设置transform-style: preserve-3d和transition- 正反两面通过
backface-visibility: hidden隐藏背面 - 背面需要额外
rotateY(180deg)对齐