以下是使用HTML5和CSS3实现3D正方体旋转的示例代码:
<!DOCTYPE html>
<html>
<head>
<style>
body {
perspective: 1000px; /* 创建3D效果 */
}
.cube {
width: 100px;
height: 100px;
margin-top: 50px;
margin-left: 50px;
position: relative;
transform-style: preserve-3d;
animation: rotate 5s infinite; /* 应用旋转动画 */
}
.cube div {
position: absolute;
width: 100px;
height: 100px;
background: rgba(255, 0, 0, 0.5); /* 红色 */
opacity: 0.5;
}
/* 定义每一个面的位置 */
.cube .front { transform: translateZ(50px); }
.cube .back { transform: rotateY(180deg) translateZ(50px); }
.cube .right { transform: rotateY(90deg) translateZ(50px); }
.cube .left { transform: rotateY(-90deg) translateZ(50px); }
.cube .top { transform: rotateX(90deg) translateZ(50px); }
.cube .bottom { transform: rotateX(-90deg) translateZ(50px); }
/* 定义旋转动画 */
@keyframes rotate {
0% {
transform: rotateX(0deg) rotateY(0deg);
}
100% {
transform: rotateX(360deg) rotateY(360deg);
}
}
</style>
</head>
<body>
<div class="cube">
<div class="front"></div>
<div class="back"></div>
<div class="right"></div>
<div class="left"></div>
<div class="top"></div>
<div class="bottom"></div>
</div>
</body>
</html>
这段代码定义了一个类名为.cube
的3D正方体,通过CSS3的transform-style: preserve-3d;
属性保持3D效果,并应用了名为rotate
的动画使正方体不断旋转。每个面使用不同的颜色和透明度,以便于区分观察。