.card { position: relative; width: 200px; height: 200px; perspective: 600px; } .card-inner { position: absolute; 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-front { background: #f00; } .card-back { transform: rotateY(180deg); background: #0f0; }
上面的代码实现了一个简单的翻转卡片效果。通过设置父元素的perspective属性,可以创建一个视角,这样子元素就可以通过transform属性在视角内进行3D变换。
还可以使用CSS3的transform-style属性设置子元素的变换方式。默认值是flat,表示所有子元素在同一平面内变换。而设置为preserve-3d则表示子元素可以在独立的3D坐标系内变换,从而实现更复杂的效果。
此外,还可以使用CSS3的transition和backface-visibility属性,分别设置子元素的变换动画和背面可见性。
除了翻转卡片效果,还有很多其他的炫酷3D效果可以使用CSS3实现。掌握这些技巧可以让大家在网页设计中更加灵活地运用CSS3,为网页增添更多动态的元素。