CSS一笔写3D
.perspective-box { perspective: 1000px; transform-style: preserve-3d; } .cube { position: relative; width: 200px; height: 200px; transform-style: preserve-3d; transform: translateZ(-100px); animation: rotate 10s linear infinite; } .front, .back, .left, .right, .top, .bottom { position: absolute; width: 200px; height: 200px; backface-visibility: hidden; } .front { transform: translateZ(100px); } .back { transform: rotateY(180deg) translateZ(100px); } .left { transform: rotateY(-90deg) translateZ(100px); } .right { transform: rotateY(90deg) translateZ(100px); } .top { transform: rotateX(-90deg) translateZ(100px); } .bottom { transform: rotateX(90deg) translateZ(100px); } @keyframes rotate { 0% { transform: translateZ(-100px) rotateX(0deg) rotateY(0deg) rotateZ(0deg); } 100% { transform: translateZ(-100px) rotateX(360deg) rotateY(360deg) rotateZ(360deg); } }
CSS一笔写3D的技巧主要是利用transform和perspective属性。首先需要给容器添加perspective属性,这个属性决定了3D效果的大小,建议设置在1000px左右。然后在需要3D效果的元素上添加transform属性,设置3D位移或旋转等效果,同时需要设置transform-style为preserve-3d,以保留父元素的3D效果。
在创建3D立方体时,需要给立方体容器添加transform-style为preserve-3d,将立方体的每一个面作为绝对定位元素,并设置其大小和位置。注意将每个面的背面设置为不可见,以防止出现穿透现象。
最后,利用keyframes动画实现3D效果的变化,将3D空间的旋转、位移等效果连续地呈现在页面上。