[摘要]本篇文章所说的内容是纯CSS实现3D的代码(正方体、动态立体图片册、平面的星空),代码都非常详细,有需要的朋友可以看一下。一、正方体我认为正方体可以算是3D图像的基础吧,首先正方体是由六个相同的面所...
本篇文章所说的内容是纯CSS实现3D的代码(正方体、动态立体图片册、平面的星空),代码都非常详细,有需要的朋友可以看一下。
一、正方体
我认为正方体可以算是3D图像的基础吧,首先正方体是由六个相同的面所组成,其次就需要我们依次构造。(据体构造在代码中)
代码如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>正方体</title>
<style>
.d3{
height: 300px;
width:300px;
perspective: 800px;
margin:140px auto;
border:1px solid #ccc; }
.stage{
height: 300px;
width: 300px;
transform-style: preserve-3d;
position: relative;
transform: rotateX(45deg) rotateY(45deg);
}
.role{
height: 300px;
width: 300px;
position: absolute;
}
.stage{
animation: dong 3s linear infinite;(这是舞台)
}
.stage:hover{
animation: paused;
}
@keyframes dong{(这是使舞台旋转的动画)
from{
transform: rotateX(45deg) rotateY(45deg);
}
to{
transform: rotateX(405deg) rotateY(405deg);
}
}
.di1{(正方体的前面)
background: rgb(21, 163, 52);
transform: translateZ(150px);(沿着z轴向前移动150px)
font-size:100px;
font-family:KaiTi;
text-align: center;
line-height: 300px;
}
.di2{(正方体的后面)
background: blue;
transform: translateZ(-150px) rotateY(180deg);(沿着z轴向前移动150px然后沿着y轴旋转180°*注意顺序哦是先移动后旋转)
font-size:100px;
font-family:KaiTi;
text-align: center;
line-height: 300px;
}
.di3{(正方体的左面)
background: purple;
transform: rotateY(-90deg) translateZ(150px);
font-size:100px;
font-family:KaiTi;
text-align: center;
line-height: 300px;
}
.di4{(正方体的右面)
background: pink;
transform: rotateY(90deg) translateZ(150px);
font-size:100px;
font-family:KaiTi;
text-align: center;
line-height: 300px;
}
.di5{(正方体的上面)
background: red;
transform: rotateX(90deg) translateZ(150px);
font-size:100px;
font-family:KaiTi;
text-align: center;
line-height: 300px;
}
.di6{(正方体的下面)
background: yellow;
transform: rotateX(-90deg) translateZ(150px);
font-size:100px;
font-family:KaiTi;
text-align: center;
line-height: 300px;
}
</style>
</head>
<body>
<div>
<div>
(将正方体分为六个相同的面)
<div class="role di1">前</div>
<div class="role di2">后</div>
<div class="role di3">左</div>
<div class="role di4">右</div>
<div class="role di5">上</div>
<div class="role di6">下</div>
</div>
</div>
</body>
</html>