8.1 变换transform
变换相关属性
transform 设置或检索对象的转换。
取值:
none (默认值)无转换
2D Transform Functions
3D Transform Functions
transform-origin 设置或检索对象以某个原点进行转换。
用法:
如果提供两个值,第一个用于横坐标,第二个用于纵坐标。
如果只提供一个,该值将用于横坐标;纵坐标将默认为50%。
3D变形需要制定Z坐标 第三个参数值
取值:
left right center
<lenght>
<percentage>
top bottom center<lenght>
<percentage>
transform-style 指定某元素的子元素是(看起来)位于三维空间内,还是在该元素所在的平面内被扁平化。
取值:
flat: (默认)指定子元素位于此元素所在平面内
preserve-3d: 指定子元素定位在三维空间内
注意:
决定一个变换元素看起来是处在三维空间还是平面内,需要该元素的父元素上定义
transform-style
属性。perspective 景深,指定观察者与「z=0」平面的距离,使具有三维位置变换的元素产生透视效果。
取值:
none: 不指定透视 (默认值)
<length>
: 指定观察者距离「z=0」平面的距离,为元素及其内容应用透视变换。不允许负值。「z>0」的三维元素比正常大,而「z<0」时则比正常小。
perspective-origin 设置透视点的位置
用法:
如果提供两个参数,第一个用于横坐标,第二个用于纵坐标。 如果只提供一个参数,该值将用于横坐标;纵坐标将默认为center。
取值:
left right center
<lenght>
<percentage>
top bottom center<lenght>
<percentage>
backface-visibility 指定元素背面面向用户时是否可见。
取值:
visible: (默认)指定元素背面可见,允许显示正面的镜像。 hidden: 指定元素背面不可见
注意:
决定一个元素背面面向用户时是否可见,需要直接在该元素上定义
backface-visibility
属性,而不能在其父元素上,因为该属性默认为不可继承。
2D变换
2D位移:
- translate(x, y) 指定对象的2D平移。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认值为0
- translatex() 指定对象X轴(水平方向)的平移
- translatey() 指定对象Y轴(垂直方向)的平移
2D缩放:
- scale(x, y) 指定对象的2D缩放。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认取第一个参数的值
- scalex() 指定对象X轴的(水平方向)缩放
- scaley() 指定对象Y轴的(垂直方向)缩放
2D旋转:
- rotate(deg) 指定对象的2D rotation(2D旋转)
2D扭曲:
- skew(x,y) 指定对象斜切扭曲。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认值为0
- skewx() 指定对象X轴的(水平方向)扭曲
- skewy() 指定对象Y轴的(垂直方向)扭曲
2D矩阵:
- matrix() 以一个含六值的(a,b,c,d,e,f)变换矩阵的形式指定一个2D变换,相当于直接应用一个[a,b,c,d,e,f]变换矩阵
3D变换
3D位移:
- translate3d(x, y, z) 指定对象的3D位移。第1个参数对应X轴,第2个参数对应Y轴,第3个参数对应Z轴,参数不允许省略
- translatez() 指定对象Z轴的平移
3D缩放:
- scale3d() 指定对象的3D缩放。第1个参数对应X轴,第2个参数对应Y轴,第3个参数对应Z轴,参数不允许省略
- scalez() 指定对象的z轴缩放
3D旋转:
- rotate3d(x, y, z, a) 指定对象的3D旋转角度,其中前3个参数分别表示旋转的方向x,y,z,第4个参数表示旋转的角度,参数不允许省略
- rotatex() 指定对象在x轴上的旋转角度
- rotatey() 指定对象在y轴上的旋转角度
- rotatex() 指定对象在z轴上的旋转角度
3D矩阵:
- matrix3d() 以一个4x4矩阵的形式指定一个3D变换
透视距离:
- perspective() 指定透视距离
多重变换
CSS3支持多重变形
transform:translate(-50%, -50%) rotate(45deg);