• CSS3新特性—过渡、转换


    过渡

    转换

    2D转换

    2D转换包括四个方面:位移,缩放,旋转,倾斜

    位移【让元素移动位置】 
          transform: translate(100px,100px);
          备注:
              1. 如果只设置一个值,那么代表在水平方向移动
              2. 如果设置两个值,那么第一个值代表水平方向,第二个值代表垂直方向
              3. 可以设置负数,负数代表相反方向
              4. 通过translate移动元素位置的时候,是相对元素自己本身,可以设置百分比。
    
    缩放【放大缩小】:
          transform: scale(2,1);
    
          备注:
             1. 如果设置的是一个值,那么代表当前元素的宽度和高度同时放大或缩小对应的倍数。
             2. 如果设置两个值,第一个值代表宽度的放大或缩小,第二值代表高度的放大或缩小。
             3. 设置的值不能带任何单位,不能设置负数。
             4. 设置大于0 小于1的值,代表缩小。
             5. 给父元素设置缩放的时候不会影响子元素。
    
    旋转:
         transform: rotate(角度)
        
          备注:
              1. 角度的单位是deg    例如: 30deg
              2. 如果设置的是正数那么代表顺时针旋转,反之逆时针旋转。
    
    
    倾斜:
         transform: skew(45deg,45deg);
    
         备注:
            1. 如果设置一个值,代表当前元素是沿着x轴,让y轴倾斜了
            2. 如果设置两个值,第一个值沿着x轴,让y轴倾斜,第二值代表沿着y轴,x轴发生倾斜。
    
     注意:
         1. transform属于复合属性。如果设置多个值的时候,要使用复合写法:
    
            transform: translate(length, length) rotate() scale(0, 0) skew(angle, angle);
    
         2. 默认元素在旋转或者倾斜的时候,是按照中心点进行旋转的。

         如果希望改变旋转点(旋转轴),通过transform-origin 设置即可。
    取值可以是具体的方位名称: left | right | bottom | top
    或者可以设置具体值: transform-origin: right bottom; transform-origin: right 200px;

    2D转化案例

    鼠标悬浮在盒子上,盒子向右移动:

    <!DOCTYPE html>
    <
    html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> div { width: 100px; height: 100px; background-color: red;
        // 过渡属性
    transition: transform 1s linear; }

    div:hover { // 设置向正方向移动400px transform: translate(400px,0); } </style> </head> <body> <div></div> </body> </html>

    3D转换

    位移
         1. transfrom: translateX(值);   正数代表向右移动,负数代表向左移动
         2. transform:translateY(值);   正数代表向下移动,负数代表向上移动
         3. transform:transalteZ(值);   正数代表朝向我们自己移动,负数代表背向移动
          备注:
              1. 3D位移也是相当元素自己。
              2. 3D位移也可以设置百分比
    
    旋转
         1. transform: rotateX(值deg);
         2. transform: rotateY(值deg);
         3. transform: rotateZ(值deg);
    
         遵循左手法则,坐标轴也跟着旋转
    
    缩放
          1. transform: scaleX(2)  
          2. transform: scaleY(2)

    透视:
    1. 要给父元素设置perspective;
    2. perspective的取值可以影响我们视觉上的效果差。【600-1000推荐设置的值】


    转换为立体效果:
    transform-style: preserve-3d;

    3D转换案例

    俩个盒子重叠在一起,鼠标悬浮在上面,一个盒子旋转45°。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <style>
            .box{
                width: 200px;
                height: 200px;
                margin: 100px auto;
                position: relative;
                transform-style: preserve-3d;
            }
            .box > div{
                width: 100%;
                height: 100%;
                position: absolute;
            }
            .box .front{
                background: red;
            }
            .box .back{
                background: green;
                /* transform: skew(0,0) rotateX(0deg); */
                transition: all 1s linear;
            }
            .box .back:hover {
                transform: skew(45deg,0) rotateX(45deg);
            }
        </style>
    </head>
    <body>
        <div class="box">
            <div class="front"></div>
            <div class="back"></div>
        </div>
    </body>
    </html>

     

    一个vue的UI库:https://github.com/houfee/light-ui,如果对您有帮助,请star ^-^
  • 相关阅读:
    Spark学习笔记2(spark所需环境配置
    Spark学习笔记1(初始spark
    zookeeper基本讲解及基本命令和配置 (转)
    计算机网络面试常考(转载)
    C++面试笔试题汇总
    复杂指针解析
    如何限制一个类对象只在栈(堆)上分配空间?
    虚函数实现机制
    C++内存分配方式详解
    C++中指针和引用的区别(转载)
  • 原文地址:https://www.cnblogs.com/houfee/p/9241446.html
Copyright © 2020-2023  润新知