淘先锋技术网

首页 1 2 3 4 5 6 7

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空间的旋转、位移等效果连续地呈现在页面上。