答案:利用CSS 3D变换实现卡片翻转。通过HTML结构搭建卡容器,使用perspective创建3D视角,transform-style: preserve-3d保持3D空间,backface-visibility: hidden隐藏背面,rotateY(180deg)实现翻转,hover触发过渡动画,无需JavaScript即可完成简易翻转效果。
要实现一个简易的卡片翻转效果,核心是利用 CSS 的 3D 变换和transform-style 属性。整个过程不需要 JavaScript,仅靠 HTML 和 CSS 即可完成。
1. 基本结构(HTML)
卡片通常由一个容器(card)包裹正面和背面两个面:
正面内容
背面内容
2. 样式设置(CSS)
关键在于设置父容器的 3D 环境,并控制翻转行为:
- .card:定义卡片大小和视角
- .card-inner:启用 3D 翻转,并添加过渡动画
- .card-face:正反面共享基础样式,背面默认隐藏
- 使用 :hover 触发翻转
.card {
width: 200px;
height: 300px;
perspective: 1000px; /* 创建3D视角 */
}
.card-inner {
width: 100%;
height: 100%;
position: relative;
transform-style: preserve-3d; / 保持子元素3D空间 /
transition: transform 0.6s ease-in-out;
}
.card:hover .card-inner {
transform: rotateY(180deg); / 鼠标悬停时翻转 /
}
.card-face {
width: 100%;
height: 100%;
position: absolute;
backface-visibility: hidden; / 隐藏背面不可见的部分 /
display: flex;
align-items: center;
justify-content: center;
border-radius: 10px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}
.front {
background-color: #fff;
color: #000;
}
.back {
background-color: #007bff;
color: white;
transform: rotateY(180deg); / 背面初始旋转180度 /
}
3. 关键属性说明
理解这几个属性是实现翻转的核心:
- perspective:决定3D视觉的深度,值越小透视感越强
- transform-style: preserve-3d:确保子元素在3D空间中渲染
- backface-visibility: hidden:防止背面在正面显示时透出
- rotateY(180deg):沿Y轴旋转,实现左右翻转效果
4. 扩展建议
你可以根据需要调整:
- 改为 rotateX 实现上下翻转
- 修改 transition 时间控制动画速度
- 加入图片或图标让卡片更生动
基本上就这些。不复杂但容易忽略细节,比如忘记 preserve-3d 或 backface-visibility,会导致翻转失效。

background-color: #fff;
color: #000;
}






