卡片翻转效果是网页交互中常见的视觉手法,通常用于展示商品正反面、问答卡等内容。借助CSS选择器,我们可以纯样式地控制元素在悬停或聚焦时发生三维翻转,而不依赖任何脚本。

实现原理
卡片翻转依赖三个关键点:父容器设置透视距离 perspective,正反面绝对定位并隐藏背面,使用 transform: rotateY() 进行旋转,再通过 transition 添加动画。
基础HTML结构
我们用一个外层容器包裹正面与反面:
<div class="card">
<div class="card-inner">
<div class="card-front">正面内容</div>
<div class="card-back">反面内容</div>
</div>
</div>
核心CSS代码
通过 :hover 选择器在鼠标悬停时让内层翻转:
.card {
perspective: 1000px;
width: 200px;
height: 260px;
}
.card-inner {
position: relative;
width: 100%;
height: 100%;
transition: transform 0.6s;
transform-style: preserve-3d;
}
.card:hover .card-inner {
transform: rotateY(180deg);
}
.card-front, .card-back {
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
}
.card-back {
transform: rotateY(180deg);
}
用其他选择器批量控制
如果有多个卡片,可以用 nth-child 选择器设置不同翻转方向或延迟:
.card:nth-child(2):hover .card-inner {
transform: rotateX(180deg);
}
.card:nth-child(3) .card-inner {
transition-delay: 0.1s;
}
常见注意点
- 父级必须设
perspective,否则翻转是二维压扁效果。 backface-visibility: hidden防止反面内容在正面时透出。- 若用
:focus-within选择器,可支持键盘聚焦翻转,提升无障碍体验。
提示:在移动端没有悬停状态时,可配合 :checked 选择器与隐藏复选框实现点击翻转。小结
通过 CSS 选择器驱动 transform 与 transition,卡片翻转效果既轻量又易维护。掌握选择器组合后,还能衍生出堆叠、错峰等多种交互形态。
css_selectorcard_fliptransform修改时间:2026-07-30 05:36:16