飞道的博客

利用HTML+CSS,写出一个正方体并实现透视效果

281人阅读  评论(0)

首先写一个正方体我们需要了解CSS中的2D和3D属性。

W3C教程

  • transform-style: preserve-3d;:这个属性必不可少

  • translate():通过 translate() 方法,元素从其当前位置移动,根据给定的 X轴坐标和Y 轴坐标位置参数。

  • rotateX():通过 rotateX() 方法,元素围绕其 X 轴以给定的度数进行旋转

  • rotateY():通过 rotateY() 方法,元素围绕其 Y 轴以给定的度数进行旋转

  • rotateZ():通过 rotateZ() 方法,元素围绕其 Z 轴以给定的度数进行旋转

了解知道以上属性后就可以进行编写。

具体代码如下:

HTML部分
<body>
    <div class="box">
        <div class="one"></div>
        <div class="two"></div>
        <div class="three"></div>
        <div class="four"></div>
        <div class="five"></div>
        <div class="six"></div>
    </div>
</body>

CSS部分
 <style type="text/css">
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            width: 500px;
            height: 500px;
            transform: translate(-50%,-50%) rotateX(45deg) rotateY(45deg);
            transform-style: preserve-3d;
        }
        .box div{
            width: 200px;
            height: 200px;
            border: black 1px solid;
            position: absolute;
            // 给盒子进行定位,将全部盒子合并在一起
            left: 400px;
            top: 250px;
            opacity: 0.5;
            // 给所有盒子设置一个透视属性
        }
        .one{
            background: red;
            transform: translate(-50%,-50%);
            transform: translateZ(100px);
        }
        .two{
            background: yellow;
            transform: translate(-50%,-50%);
            transform: translateZ(-100px);
        }
        .three{
            background: green;
            transform: translate(-50%,0) translateX(200px) rotateY(90deg);
        }
        .four{
            background: blue;
            transform: translate(-50%,0) translateX(0px) rotateY(90deg);
        }
        .five{
            transform: translate(-50%,-50%) translateX(100px) rotateX(90deg);
            background: blueviolet;
        }
        .six{
            transform: translate(0%,-50%) translateY(200px) rotateX(90deg);
            background: brown;
        }
    </style>

转载:https://blog.csdn.net/J_LAIDA/article/details/106459517
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场