方法一:(忽略左右兩邊,保證上下前後四面旋轉到前面時都是正的)
步驟一:
一個大盒子包着6個小盒子;
步驟二:
大盒子的寬高和小盒子的一樣;
步驟三:
子絕父相,讓6個小盒子脫離文檔流,疊在一起;
步驟四:
給6個小盒子設置不同背景顏色;
步驟五:
先做上下前後四個面,分別圍繞X軸旋轉90deg,180deg,270deg,360deg,再繼續沿Z軸平移寬度的一半。
步驟六:
再做左右兩個面,分別圍繞X軸平移小盒子寬的一半(其中一個是反方向),再圍繞Y軸旋轉90deg.
步驟七:
給父元素加transform-style: preserve-3d;轉成3d.
步驟八:
讓父元素旋轉,查看效果, transform:rotateY(30deg) rotateX(30deg);
步驟九:
給父元素加動畫,animation: movie 5s linear infinite;
寫規則;@keyframes movie{
form{
transform:rotateY(0deg) rotateX(0deg);
}
to{
transform:rotateY(360deg) rotateX(360deg);
}
}
HTML及CSS樣式如下:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>立方體2</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
list-style: none;
}
ul{
width: 200px;
height: 200px;
/* border:1px solid black; */
/* box-sizing: border-box; */
margin:200px auto;
position:relative;
transform-style: preserve-3d;
transform:rotateY(30deg) rotateX(30deg);
animation: movie 5s linear infinite;
}
@keyframes movie{
form{
transform:rotateY(0deg) rotateX(0deg);
}
to{
transform:rotateY(360deg) rotateX(360deg);
}
}
li{
width: 200px;
height: 200px;
text-align: center;
line-height: 200px;
position:absolute;
left:0;
top: 0;
opacity:0.5;
}
ul li:nth-child(1){
background: red;
transform: rotateX(90deg) translateZ(100px);
}
ul li:nth-child(2){
background: yellow;
transform: rotateX(180deg) translateZ(100px);
}
ul li:nth-child(3){
background: green;
transform: rotateX(270deg) translateZ(100px);
}
ul li:nth-child(4){
background: pink;
transform: rotateX(360deg) translateZ(100px);
}
ul li:nth-child(5){
background: blue;
transform: translateX(-100px) rotateY(90deg);
}
ul li:nth-child(6){
background: orange;
transform: translateX(100px) rotateY(90deg);
}
</style>
</head>
<body>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<li>5</li>
<li>6</li>
</ul>
</body>
</html>