css中的2D平面转换

343 阅读2分钟

看到2D可以联想到数学中的X和Y轴,css中的2D平面转换就是指改变盒子(即元素)在X轴和Y轴的形态.

image.png

一.位移

语法:transform:translate(水平移动距离,垂直移动距离);

取值(正负均可): 向右移动取正值,向左移动取负值; 向下移动取正值,向上移动取负值;

常用场景:配合父相子绝定位实现盒子居中效果

            /* 相对定位 */
            position: relative;
            width: 500px;
            height: 500px;
            background-color: wheat;
        }
        .son {
            /* 绝对定位 */
            position: absolute;
            /* 移动父盒子宽的一半 */
            left: 50%;
            /* 移动自己宽的一半 */
            /* margin-left: -100px; */
            /* 移动父盒子高的一半 */
            top: 50%;
            /* 移动自己高的一半 */
            /* margin-top: -100px; */
            width: 200px;
            height: 200px;
            background-color: pink;
        }

二.旋转

1.默认原点是元素的中心点

语法:transform:rotate(角度);

单位:角度单位是:deg,或者是turn

换算:1度=1deg 360度=1turn

取值:取值为正,顺时针旋转; 取值为负,则逆时针旋转

注意:元素在旋转时为使效果更清晰一般配合过渡使用.

2.转换原点

改变旋转的中心点

语法:transform-origin:原点水平位置 原点垂直位置;

3.多重转换

例子:实现轮胎在页面滚动一段距离的效果

综合写法:先位移再旋转

语法:transform:translate(水平方向,垂直方向) rotate(角度);

注意:如果先旋转再位移,在旋转过程中坐标轴会发生变化,后面再位移会以旋转后的轴向为准,影响转换效果.

三.缩放

语法: transform:scale(x轴缩放倍数,y轴缩放倍数);

transform:scale(缩放倍数)

一般情况下,只为scale设置一个值,表示x轴和y轴等比例缩放.

scale取值:

1以上是放大,1以下就是缩小,1倍表示不变;

缩放可以取负值,元素会先缩小再放大对应的倍数

四.倾斜

语法:transform:shew(倾斜角度)

单位:deg

取值:往左倾斜是负值,往右是正值

注意:倾斜角度不要为直角,在平面状态下直角是无法查看的.