2D

176 阅读1分钟

2D

概念

俗称2D变换,指的是基于2D平面的角度,让标签元素发生变化。例如,让盒子移动、让盒子缩放、让盒子旋转。。。

平移

平移是让盒子在水平方向或垂直方向进行移动。

语法:

transform: translateX(像素值);
    /* 水平方向移动,正值向右,负值向左 */
transform: translateY(像素值); 
    /* 垂直方向移动,正值向下,负值向上 */
transform: translate(水平方向像素值, 垂直方向像素值); 
    /* 复合写法 */

缩放

缩放指让盒子可以缩放或放大一定的倍数。

语法:

transform:scaleX(横向放大倍数);
transform:scaleY(纵向放大倍数);
transform:scale(倍数);
        /*大于1的放大,小于1的缩小*/

旋转

旋转指让盒子绕着x轴或y轴进行旋转。

语法:

(单位 deg  --角度)
transform:rotateX(旋转的角度);
    /* 绕着x轴旋转多少角度*/
transform:rotateY(旋转的角度);
    /* 绕着y轴旋转多少角度*/
transform:rotate(旋转的角度);
    /* 绕着盒子中心点旋转多少角度*/   
    
transform-origin:x轴坐标 y轴坐标;
    /* 调整旋转的中心,可以使用像素值,可以使用关键字 */

backface-visibility:hidden;
    /* 设置旋转180度以后背面是否可见 */

案例

<style>
    .box{
        width: 150px;
        height: 200px;
        border: 1px solid #000;
        position: relative;
        /*相对定位*/
    }
    .box img{
        width: 150px;
        height: 200px;
        position:absolute;
        /* 绝对定位*/
        left: 0;
        top: 0;
    }
    .box img{
        backface-visibility: hidden;
        /* 超出隐藏*/
        
        transition: all 2s;
        /* 过渡 */
    }
    .box img:nth-child(2){
        transform: rotateY(180deg);
        /* 绕着Y轴水平旋转180度*/
    }
    .box:hover img:nth-child(1){
        transform: rotateY(180deg);
        /* 绕着Y轴水平旋转180度*/
        
        backface-visibility: hidden;
        /* 超出隐藏*/
    }
    .box:hover img:nth-child(2){
        transform: rotateY(0deg);
        /* 绕着Y轴水平旋转0度*/
    }
</style>
<div class="box">
    <img src="./back.png" alt="">
    <img src="./black13.png" alt="">
</div>

翻转扑克.gif