默认高度
/* 容器样式 */ .container { perspective: 1000px; /* 视距,越小离屏幕越近,单位px */ } /* 图片样式 */ .image { width: 200px; height: 200px; position: relative; transform-style: preserve-3d; /* 保持3D,旋转后不会扁平化 */ transform: rotateY(45deg) translateZ(100px); /* 旋转角度和距离,单位px */ transition: transform 1s; /* 过渡效果,1秒内完成 */ } /* 鼠标悬停时的样式 */ .image:hover { transform: rotateX(90deg); /* 旋转到90度,注意YZ轴未变 */ } /* 图片正面样式 */ .image .front { position: absolute; width: 100%; height: 100%; background-color: #f00; transform-origin: center center -100px; /* 旋转中心,即Z轴距离 */ } /* 图片背面样式 */ .image .back { position: absolute; width: 100%; height: 100%; background-color: #0f0; transform-origin: center center 100px; /* 旋转中心,即Z轴距离 */ transform: rotateY(180deg); /* 背面翻转 */ }
以上代码定义了一个容器和一张图片,采用透视效果使其呈现出立体效果。通过鼠标悬停时的过渡效果,将图片旋转到90度,从而呈现出完整的背面。通过前后两个面的绝对定位,实现了正反两面的背景色设置和Z轴的距离转换。