zoukankan      html  css  js  c++  java
  • 用CSS3搭建立方体

    用CSS3的知识,3d旋转,平移搭建立方体

    代码如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
            .box {
                position: relative;
                width: 200px;
                height: 200px;
                margin:200px auto 0px;
                /* 保留3d效果 */
                transform-style: preserve-3d;
                /* 这个旋转就是为了好观察 */
                transform:rotate3d(1,1,0,-45deg);
            }
            .side {
                position: absolute;
                left: 0;
                top: 0;
                width: 200px;
                height: 200px;
                border:2px solid #989898;
                line-height: 200px;
                text-align: center;
                font-size: 30px;
                color:darkred;
                opacity: 0.5;
                transition:transform 1s;
            }
            /* 向z轴正方向移动 +100px */
            .front {
                /* 1.没有事件触发 ,没有过渡----》保留3d效果
                transform-style:preserve-3d /flat (2d样式)
                也设置到父盒子身上
                 */
              transform:translateZ(100px);
    
    
            }
            .back {
                transform:translateZ(-100px) rotateY(180deg);  
            }
            .left {
                transform: translateX(-100px) rotateY(-90deg);
              
            }
            .right {
                transform: translateX(100px) rotateY(90deg);
            }
            .top {
                 transform: translateY(-100px) rotateX(90deg);
            }
            .bottom {
                 transform: translateY(100px) rotateX(-90deg);
            }
            /* .box:hover .side {
                transform: translateZ(200px);
            } */
            .box:hover .left {
                transform:  rotateY(-90deg) translateZ(200px);
            }
            .box:hover .right {
                transform:  rotateY(90deg) translateZ(200px);
            }
            .box:hover .top {
                transform:   rotateX(90deg) translateZ(200px);
            }
            .box:hover .bottom {
                transform:   rotateX(-90deg) translateZ(200px);
            }
            .box:hover .front {
                transform:   translateZ(200px);
            }
            .box:hover .back {
                transform:  rotateY(180deg)  translateZ(200px);
            }
        </style>
    </head>
    <body>
        <!-- 大盒子>6个面 -->
        <div class="box">
            <div class="side front"></div>
            <div class="side back"></div>
            <div class="side left"></div>
            <div class="side right"></div>
            <div class="side top"></div>
            <div class="side bottom"></div>
        </div>
    </body>
    </html>

    效果:

    搭建完毕如下:

     当鼠标移入时,各个面都向前平移200px,效果如下:

  • 相关阅读:
    [Angular2 Form] Build Select Dropdowns for Angular 2 Forms
    [Angular2 Form] Create Radio Buttons for Angular 2 Forms
    [Angular2 Router] Exiting an Angular 2 Route
    [Angular2 Router] Optional Route Query Parameters
    JS 实现地区,省份,城市,县区4级联动
    Linux web工程部署远程必备软件安装
    [置顶] 白话01背包
    APUE读书笔记-第17章-高级进程间通信
    UVA 10779 Collectors Problem(最大流)
    (二) win8+XAML Binding(数据绑定)
  • 原文地址:https://www.cnblogs.com/shihaiying/p/13565413.html
Copyright © 2011-2022 走看看