css3 3d旋转-正方体

首先展示下效果

css3 3d旋转-正方体

html结构:


<div id="state">
    <div class="cube">
        <div class="side front"></div>
        <div class="side back"></div>
        <div class="side left"></div>
        <div class="side right"></div>
        <div class="side top"></div>
        <div class="side botton"></div>
    </div>
</div>
<div class="side top"></div> <div class="side botton"></div> </div></div>

1、舞台的搭建

设置视距属性,形成3D效果:(perspective)
#state{ /*搭建舞台*/
    margin: 200px auto;
    width: 300px;
    height: 300px;
    perspective: 1200px; /*设置3D视距*/
    font-size: 5em;
    font-weight: bold;
}

2、容器的设置

正方体的搭建,是通过定位将六个面的正方形,都重叠在一起,形成一个面,并设置子元素的3d效果,让子元素通过旋转和平移操作组成正方体: ps:注意得设置容器的宽高,否则,设置动画时,会出现旋转中心不是正方体的中点,而是某一条边。
.cube{      /*设置正方体*/
    position: relative;
    transform-style:preserve-3d;
    width:100%;
    height: 100%;
    animation: x-rotate 6s linear infinite;/*设置动画*/
}

3、六个正方形的通过旋转和平移形成正方体:戳这里-3d坐标参考

.side { /*设置定位使得正方形重叠*/
    color:blue;
    text-align: center;
    width: 300px;
    height: 300px;
    line-height: 300px;
    position: absolute;
    opacity: 0.7;
    background-color: black;
}

.front
{
    transform: translateZ(150px); /*往Z轴正平移等于物体离我们近了*/
    background-color: chartreuse;
}
.back{
    transform:translateZ(-150px) ;
/*往Z轴负平移等于物体离我们远了*/
background-color: sandybrown;}.left{ transform: rotateY(-90deg) translateZ(150px);
/*必须旋转后再平移,否则旋转的中点会改变,Z轴的平移方向可以参考3d坐标参考*/ 
background-color: aqua;}.right{ background-color:cornflowerblue; transform: rotateY(90deg) translateZ(150px);}.top{ background-color:brown; transform: rotateX(90deg) translateZ(150px);}.botton{ background-color:saddlebrown; transform: rotateX(-90deg) translateZ(150px);}


最后附上详细资料的博客:3d立方体资料一