制作3D正方体这个过程通常可以分为以下几个步骤:
1.确定一个容器,为3D场景提供空间,可以设定宽、高、以及透视效果的角度。
2.设置立方体的六个面,让它们呈现出正方形。
3.将六个面浮起来,让立方体看起来具有体积感。
下面将详细讲解如何实现以上的步骤,其中包括两个样例说明:
1.基础版3D正方体:
HTML代码如下:
<div class="cube">
<div class="face face1"></div>
<div class="face face2"></div>
<div class="face face3"></div>
<div class="face face4"></div>
<div class="face face5"></div>
<div class="face face6"></div>
</div>
CSS代码如下:
.cube {
position: relative;
margin: 0 auto;
height: 200px;
width: 200px;
transform-style: preserve-3d;
transform: rotateX(35deg) rotateY(-45deg);
}
.face {
position: absolute;
height: 200px;
width: 200px;
background-color:#CCC;
opacity: 0.8;
display: flex;
justify-content: center;
align-items: center;
font-size: 4em;
color: #fff;
cursor: pointer;
}
.face1 {
transform: translateZ(100px);
}
.face2 {
transform: rotateY(90deg) translateZ(100px);
}
.face3 {
transform: rotateY(180deg) translateZ(100px);
}
.face4 {
transform: rotateY(-90deg) translateZ(100px);
}
.face5 {
transform: rotateX(90deg) translateZ(100px);
}
.face6 {
transform: rotateX(-90deg) translateZ(100px);
}
2.自定义设计的3D正方体:
HTML代码如下:
<div class="cube-custom">
<div class="face-custom face-custom1">
<img src="img/face1.jpg" alt="">
</div>
<div class="face-custom face-custom2">
<img src="img/face2.jpg" alt="">
</div>
<div class="face-custom face-custom3">
<img src="img/face3.jpg" alt="">
</div>
<div class="face-custom face-custom4">
<img src="img/face4.jpg" alt="">
</div>
<div class="face-custom face-custom5">
<img src="img/face5.jpg" alt="">
</div>
<div class="face-custom face-custom6">
<img src="img/face6.jpg" alt="">
</div>
</div>
CSS代码如下:
.cube-custom {
position: relative;
margin: 0 auto;
height: 200px;
width: 200px;
transform-style: preserve-3d;
transform: rotateX(35deg) rotateY(-45deg);
-webkit-transform: rotateX(35deg) rotateY(-45deg);
-moz-transform: rotateX(35deg) rotateY(-45deg);
-o-transform: rotateX(35deg) rotateY(-45deg);
}
.face-custom {
position: absolute;
height: 200px;
width: 200px;
background-color:#FFF;
display: flex;
justify-content: center;
align-items: center;
font-size: 4em;
cursor: pointer;
}
.face-custom img{
width: 100%;
height: 100%;
object-fit: cover;
}
.face-custom:hover {
background-color:#009ED7;
}
.face-custom1 {
transform: translateZ(100px);
}
.face-custom2 {
transform: rotateY(90deg) translateZ(100px);
}
.face-custom3 {
transform: rotateY(180deg) translateZ(100px);
}
.face-custom4 {
transform: rotateY(-90deg) translateZ(100px);
}
.face-custom5 {
transform: rotateX(90deg) translateZ(100px);
}
.face-custom6 {
transform: rotateX(-90deg) translateZ(100px);
}
以上两个示例代码块中,我们参照这三个步骤制作了3D正方体,步骤中用到了CSS3的transform以及perspective属性,这两个属性对于实现3D效果非常重要。同时,有趣的是,我们可以给六个面分别设置不同的颜色、图片或其他的属性,从而自定义设计不同款式的3D正方体。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:利用CSS3的3D效果制作正方体 - Python技术站