css3d制作正方体

使用css3d技术 ,制作一个可以动态动画的正方体模型
效果图:

代码如下:

html 复制代码
<!DOCTYPE html>
<html>
<head>
    <style>
        /* 设置高度宽度100%并且左右居中、上下居中 */
        html,
        body {
            width: 100%;
            height: 100%;
            display: flex;
            justify-content: center;
            align-items: center;
        }
/* 设置单面的高宽 */
        .box {
            width: 50px;
            height: 50px;
            /* 3D视距 */
            perspective: 1000px;
        }
/* 设置面里的字体大小居中、绝对定位 */
        .box div {
            font-size: 20px;
            text-align: center;
            width: 100%;
            height: 100%;
            position: absolute;
        }
/* 设置3D动画以及特效旋转 */
        main {
            width: 100%;
            height: 100%;
            transform-style: preserve-3d;
            /* 第一个参数是关键帧的名字、第二个参数是动画的时长、第三个参数是动画从头到尾的速度始终一致、第四个参数是播放的次数infinite无限次 */
            animation: rotate 10s linear infinite;
        }

        .front {
            background: rgba(100, 0, 100, 0.6);
            /* 将div沿Z轴向前移动50px */
            transform: translateZ(25px);
        }

        .back {
            background: rgba(0, 100, 100, 0.5);
            /* 将div沿Z轴向后移动50px */
            transform: translateZ(-25px);
        }

        .left {
            background: rgba(100, 1000, 100, 0.5);
             /* 将div沿Y轴旋转90度,Z轴向后移动50px */
            transform: rotateY(90deg) translateZ(-25px);
        }

        .right {
            background: rgba(1000, 100, 100, 0.5);
            /* 将div沿Y轴旋转90度,Z轴向前移动50px */
            transform: rotateY(90deg) translateZ(25px);
        }

        .top {
            background: rgba(1000, 0, 0, 0.5);
            /* 将div沿X轴旋转90度,Z轴向前移动50px */
            transform: rotateX(90deg) translateZ(25px);
        }

        .bottom {
            background: rgba(0, 0, 1000, 0.5);
            /* 将div沿X轴旋转90度,Z轴向后移动50px */
            transform: rotateX(90deg) translateZ(-25px);
        } 

        @keyframes rotate {
            from {
                /* 动画起始位置 */
                transform: rotateX(0) rotateY(0);
            }

            to {
                /* 动画终点位置 */
                transform: rotateX(360deg) rotateY(360deg);
            }
        }
    </style>
</head>

<body>
    <div class="box">
        <main>
            <div class="front">前</div>
            <div class="back">后</div>
            <div class="left">左</div>
            <div class="right">右</div>
            <div class="top">上</div>
            <div class="bottom">下</div>
            <main>
    </div>
</body>

</html>
相关推荐
啾咪orJIUMI1 小时前
Vue 3 + 高德地图封装实战:点位、区域、Loca 流光与 Vue 信息窗体
前端·vue.js
掘金者阿豪1 小时前
AI数据库不只是向量检索:从数据语义到库内智能计算的技术演进
前端
梦里寻码1 小时前
我用 NestJS + Vue3 写了一套完整的研发管理系统(58 表 / 229 API / 130 项断言,全开源
前端·后端·算法
FRing032 小时前
vue2干货总结8(路由模块封装、router-link、声明式导航、路由重定向、编程式导航)
开发语言·前端·vue.js·vue2
SameX2 小时前
HarmonyOS ArkUI Dialog 复用 用 @CustomDialog + enum type 做多类型统一管理的做法
前端
AiMan2 小时前
豆包爱学还是不可以导出左侧所有对话,只能单容导出,方法不对吗
前端
AiMan2 小时前
Grok生成的内容能否下载吗?
前端
徐小夕3 小时前
JitArchives,一款基于JitWord协同AI文档打造的企业级电子档案系统
前端·vue.js·github
陈随易3 小时前
Node.js 2026上半年都有哪些性能提升?
前端·后端·程序员
墨林陌3 小时前
AI 热点日报(2026-11-09):苹果代理式Siri曝光,Anthropic推进IPO,编码智能体实测翻车
前端