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>
相关推荐
周亚鑫2 分钟前
vue3 pdf base64转成文件流打开
前端·javascript·pdf
Justinc.18 分钟前
CSS3新增边框属性(五)
前端·css·css3
fruge25 分钟前
纯css制作声波扩散动画、js+css3波纹催眠动画特效、【css3动画】圆波扩散效果、雷达光波效果完整代码
javascript·css·css3
neter.asia34 分钟前
vue中如何关闭eslint检测?
前端·javascript·vue.js
~甲壳虫35 分钟前
说说webpack中常见的Plugin?解决了什么问题?
前端·webpack·node.js
嚣张农民41 分钟前
JavaScript中Promise分别有哪些函数?
前端·javascript·面试
光影少年1 小时前
vue2与vue3的全局通信插件,如何实现自定义的插件
前端·javascript·vue.js
As977_1 小时前
前端学习Day12 CSS盒子的定位(相对定位篇“附练习”)
前端·css·学习
susu10830189111 小时前
vue3 css的样式如果background没有,如何覆盖有background的样式
前端·css
Ocean☾1 小时前
前端基础-html-注册界面
前端·算法·html