CSS3-变换
CSS3-变换
2D变换-位移
transform属性可以实现CSS3的所有变换操作
位移是通过其属性值translateX() 和translateY()来实现‘
- 位移与相对定位很相似,都不脱离文档流,也不会影响到其他元素
- 相对定位的百分比值是参考父元素做定位,而位移的百分比值是参考自身位移
- 位移对行内元素无效
- 位移配合定位可以实现元素水平居中
.box{
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50% , -50%);
}
2D变换-缩放
缩放通过属性值scaleX()和scaleY()来实现
这里的值没有单位,0为缩放至没有元素,但这个值可以为负数,-1则为翻转
我们可以通过缩放来调整文字大小小于浏览器默认大小
2D变换-旋转
旋转通过属性值rotateZ()来实现
这里的值的单位是deg,直接给一个角度即可
2D变换-扭曲
扭曲通过属性值skewX()和skewY()来实现
这里的值的单位是deg,直接给一个角度即可
多重变换
因为所有变换都是通过一个transform属性其中的属性值来调整的,所以在进行多重变换时,我们应该将多条属性值写在同一个transform属性中
应该注意所有变换的顺序,其中,旋转应该放在所有变换的最后
变换原点
-
通过transform-origin属性可以设置变换的原点
-
修改变换原点对位移没有影响,对旋转和缩放会产生影响
-
如果提供两个值,第一个值应用横坐标,第二个值应用纵坐标
-
如果只提供一个,若是像素值,表示横坐标,纵坐标取50%,若是关键词,则另一个坐标取50%
3D空间与景深
- 元素如果要进行3D变换的首要操作,就是将其父元素使用transform-style属性开启3D空间
- flat:2D空间,默认值
- preserve-3D:让子元素位于此元素内的三维空间里
- 景深指的是观察者与z=0平面的距离,能让3D变换的元素产生透视效果,看起来更加立体,使用perspective属性设置景深
- none:不指定透视,默认值
- 长度值:指定观察者距离z=0平面的距离,不允许负值
透视点位置
通过perspective-origin属性来调整透视点的位置
通常情况下,我们不需要调整透视点的位置
3D变换-位移
通过translateZ()和translate3D()实现3D变换的位移
3D变换-旋转
- rotateX:设置x轴旋转角度,需要指定一个角度值(deg),面对x轴正方向,正值顺时针,负值逆时针
- rotateY:设置y轴旋转角度,需要指定一个角度值(deg),面对y轴正方向,正值顺时针,负值逆时针
- rotate3D:四个值,最后一个值为角度,前三个值为是否要在(X,Y,Z)轴上进行选装
3D变换-缩放
- scaleZ:设置z轴方向的缩放比例,值为一个数字
- scale3d:第一个参数对应x轴,第二个参数对应y轴,第三个参数对应z轴,参数不允许省略