<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
list-style: none;
}
body {
perspective: 600px;
}
.max {
position: relative;
margin: 200px auto;
width: 190px;
height: 190px;
/* 设置上帝视觉,为了辅助对盒子的编排 */
/* transform: rotateX(-20deg) rotateY(50deg); */
/* 开启3D立体图形 */
transform-style: preserve-3d;
/* 调用定义的动画 */
animation: move 3s linear infinite alternate;
}
/* 定义一个动画move */
@keyframes move {
to {
transform: rotateX(-180deg) rotateY(360deg) rotateZ(360deg);
}
}
[class^="box"] {
/* 六个平面盒子都设置绝对定位,使用子绝父相 */
position: absolute;
top: 0px;
left: 0px;
width: 190px;
height: 190px;
background-color: #000;
}
div li {
margin-top: 10px;
margin-left: 10px;
float: left;
width: 50px;
height: 50px;
border-radius: 10px;
}
.box1 {
/* 第一个盒子向Z轴前移动一半的距离 构造魔方前面 */
transform: translateZ(95px);
}
.box1 li {
background-color: yellow;
}
.box2 {
/* 第二个盒子向Z轴后移动一半的距离 构造魔方后面 */
transform: translateZ(-95px);
}
.box2 li {
background-color: #fff;
}
.box3 {
/* 第三个盒子向平面左边移动一半距离,然后旋转90度与平面垂直,构造魔方左面 */
transform: translateX(-95px) rotateY(90deg);
}
.box3 li {
background-color: blue;
}
.box4 {
/* 第四个盒子向平面右边移动一半距离,然后旋转90度与平面垂直,构造魔方右面 */
transform: translateX(95px) rotateY(90deg);
}
.box4 li {
background-color: green;
}
.box5 {
/* 第五个盒子向平面上方移动一半距离,然后旋转90度与平面垂直,构造魔方上面 */
transform: translateY(-95px) rotateX(90deg);
}
.box5 li {
background-color: red;
}
.box6 {
/* 第六个盒子向平面下方移动一半距离,然后旋转90度与平面垂直,构造魔方上面 */
transform: translateY(95px) rotateX(90deg);
}
.box6 li {
background-color: orange;
}
</style>
</head>
<body>
<div class="max">
<div class="box1">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div class="box2">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div class="box3">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div class="box4">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div class="box5">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
<div class="box6">
<ul>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
<li></li>
</ul>
</div>
</div>
</body>
</html>