使用纯CSS创建3D卡片翻转效果,无需JavaScript
将鼠标悬停在下面的卡片上查看3D翻转效果
尊享特权服务
鼠标悬停翻转卡片
3D卡片效果主要使用CSS的transform和perspective属性实现。 通过创建一个3D空间,让卡片的正反面在不同平面上,然后通过旋转实现翻转效果。
/* 创建3D透视空间 */
.card-3d {
perspective: 1000px;
}
/* 卡片容器,启用3D变换 */
.card-inner {
transition: transform 0.8s;
transform-style: preserve-3d;
}
/* 鼠标悬停时翻转卡片 */
.card-3d:hover .card-inner {
transform: rotateY(180deg);
}
/* 卡片正面和背面共用样式 */
.card-front, .card-back {
position: absolute;
backface-visibility: hidden;
}
/* 背面默认翻转180度 */
.card-back {
transform: rotateY(180deg);
}
perspective属性,定义3D空间的透视深度。值越小,3D效果越明显。
transform-style: preserve-3d,确保子元素在3D空间中呈现。
backface-visibility: hidden,确保当元素面向用户时背面不可见。
:hover状态,当鼠标悬停时翻转内部容器180度,使背面可见。
perspective属性需要设置在父元素上,而不是变换元素本身transform-style: preserve-3d确保子元素保持3D位置transition的时间函数来改变翻转动画的缓动效果