思路: 1.创建一个div外包裹容器,居中,设置相对定位
2.包裹容器中添加6个div,设置绝对定位,此时6个div重合。
3.将六面体的六个面排好,(左边两个div重叠,中间两个div重叠,右边两div重叠)
4.中间重叠的两块是六面体的前、后两面。前面的只需让其沿z轴一到移动(边长根号3)px,后面的div需要先绕x旋转180deg,在沿z轴移动-(边长根号3)px
5.左侧后面的面先沿z轴移动-(边长根号3)px,是指旋转的原点transform-origin:0% 0%,再绕x轴旋转-120deg
6.左侧前面的面先沿z轴移动(边长根号3)px,是指旋转的原点transform-origin:0% 0%,再绕x轴旋转120deg
7.右侧后面的面先沿z轴移动-(边长根号3)px,是指旋转的原点transform-origin:100% 0%,再绕x轴旋转-120deg
8.左侧前面的面先沿z轴移动(边长根号3)px,是指旋转的原点transform-origin:100% 0%,再绕x轴旋转120deg
9.添加图片就可以啦~
10.设置动画让其旋转起来就可以啦~
<!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;
}
html{
perspective: 800px;
}
body{
background-color: black;
}
img{
width: 100%;
position: absolute;
top: 0;
bottom: 0;
margin: auto;
}
.outer{
position: relative;
width: 600px;
height: 450px;
margin: 100px auto;
transform-style: preserve-3d;
transform: rotateX(30deg);
animation: rot 12s linear infinite;
}
.outer>div{
width: 400px;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
margin: auto;
}
.outer>div:nth-child(1){
transform: rotateY(0) translateZ(346.4PX);
}
.outer>div:nth-child(2){
transform: rotateY(180deg) translateZ(346.4px);
}
.outer>div:nth-child(3){
transform:translateX(-400px);
transform-origin: 0% 0%;
transform: translateZ(346.4px) rotateY(120deg) ;
}
.outer>div:nth-child(4){
transform:translateX(-400px);
transform-origin: 0% 0%;
transform: translateZ(-346.4px) rotateY(-120deg) ;
}
.outer>div:nth-child(5){
transform:translateX(400px);
transform-origin: 100% 0%;
transform: translateZ(-346.4px) rotateY(120deg) ;
}
.outer>div:nth-child(6){
transform:translateX(400px);
transform-origin: 100% 0%;
transform: translateZ(346.4px) rotateY(-120deg) ;
}
@keyframes rot{
from{
transform: rotateY(0deg) rotatex(-30deg);
}
to{
transform: rotateY(360deg) rotatex(30deg);
}
}
</style>
</head>
<body>
<div class="outer">
<div><img src="./1.jpeg" alt=""></div>
<div><img src="./2.jpeg" alt=""></div>
<div> <img src="./3.jpeg" alt=""></div>
<div> <img src="./4.jpg" alt=""></div>
<div><img src="./5.jpg" alt=""></div>
<div><img src="./6.jpg" alt=""></div>
</div>
</body>
</html>