2D转换
transform: 转换,是CSS3最具颠覆性的几个特性之一,既可以用于2D转换,也可以用于3D转换。
transform:2D转换,元素在平面上实现移动、旋转、缩放、斜切等操作
translate平移
transform: translateX(100px);
transform: translateY(100px);
transform: translate(100px, 100px);
transform: translate(50%, 50%);
注意:
translate的值可以是px,也可以是百分比,如果是百分比,那么参照的是自身的宽高。
translate移动的元素并不会影响其他盒子,类似于相对定位。
scale缩放
transform: scaleX(0.5);/让宽度变化/
transform: scaleY(0.5);/让高度变化,注意不能写多个transform,不然会覆盖。/
transform: scale(0.5);/让宽度和高度同时变化/
注意:
scale接收的值倍数,没有单位
一个值表示宽高等比例的缩放。
可以通过transition-origin设定旋转原点
transform-origin转换原点
通过transform-origin可以设置转换的中心原点。
transform-origin: center center;
rotate旋转
transform: rotate(360deg);//旋转360度
transform: rotate(-360deg);//逆时针旋转360度
注意:
单位是deg,角度,不是px
正值顺时针转,负值逆时针转
可以通过transform-origin设定旋转原点
skew斜切(变形 了解即可)
skew在实际开发中,是用的最少的一个属性。一般来说,x和y只会倾斜其中的一个
沿着那根轴进行斜切 那个轴保持不动 另外一个轴朝这个轴偏移对应的角度
/在水平方向倾斜30deg/
transform: skewX(30deg);
/在垂直方向倾斜30deg/
transform: skewY(30deg);
转换合写问题(重点)
1.当一个元素有多个2D转换(比如 既旋转又缩放)效果 采用连写的方式
2.2D转换的顺序不同 结果也就不同 主要针对的是移动和旋转 (物体发生了旋转 内部坐标系也跟着发生了旋转)
3.多个状态下面有2D转换效果时, 需要复制前面已经存在的transform效果