参考链接:
transform
概述
transform 属性允许你修改CSS视觉格式模型的坐标空间。使用它,元素可以被转换(translate)、旋转(rotate)、缩放(scale)、倾斜(skew)
CSS transform 属性 , 只对 block 级元素生效!
1 | 初始值 none |
示例
1 | /* Keyword values */ |
语法
- <transform-function>
至少一个 CSS transform functions 被应用 - none
指定为 不应用transform
2D变化
- matrix() 用六个指定的值来指定一个均匀的二维(2D)变换矩阵
1 | transform: matrix(a, c, b, d, tx, ty) |
- translate() 指定对象的2D translation(2D平移)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认值为0
- translateX() 指定对象X轴(水平方向)的平移,translate(tx, 0) 的简写形式
- translateY() 指定对象Y轴(垂直方向)的平移,translate(0, ty)的简写形式
- rotate() 指定对象的2D rotation(2D旋转),需先有 <’ transform-origin ‘> 属性的定义。移动量由指定角度定义;如果为正值,则运动将为顺时针,如果为负值,则为逆时针 。 180°的旋转称为点反射 (point reflection)。
1 | rotate(<angle>) |
- scale()
- 指定对象的2D scale(2D缩放)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认取第一个参数的值。
- 当超出 [-1, 1]范围外时,缩放将在坐标方向上放大元素;当在该范围内时,它在该方向收缩元素。当等于1时,它什么也不做,当它为负时,它执行点反射和大小修改。
1 | scale(sx) or |
- scaleX() 指定对象X轴的(水平方向)缩放
- scaleX(sx) 是 scale(sx, 1) 和 scale3d(sx, 1, 1) 的简写形式。
- scaleX(-1) 表示通过原点的垂直轴定义轴对称(由 transform-origin 属性指定)。
- scaleY() 指定对象Y轴的(垂直方向)缩放
- scaleY(sy) 是 scale(1, sy) 和 scale3d(1, sy, 1) 的简写形式。
- scaleY(-1) 定义了通过原点的水平轴的轴对称(由 transform-origin 属性指定)。
- skew() 指定对象skew transformation(斜切扭曲)。第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则默认值为0
==注意css斜切坐标系的x,y轴==
- skewX()
指定对象X轴的(水平方向)扭曲 - skewY()
指定对象Y轴的(垂直方向)扭曲
3D变化
- matrix3d() 用一个 4 × 4 的齐次矩阵来描述一个三维(3D)变换
1 | transform: matrix3d(a1, b1, c1, d1, a2, b2, c2, d2, a3, b3, c3, d3, a4, b4, c4, d4); |
- translate3d() 指定对象的3D位移。第1个参数对应X轴,第2个参数对应Y轴,第3个参数对应Z轴,参数不允许省略
transform-origin
概述
transform-origin 属性让你更改一个元素变形的原点。
1 | 初始值 50% 50% 0 |
示例
1 | /* One-value syntax */ |
transform-origin属性可以使用一个,两个或三个值来指定,其中每个值都表示一个偏移量。 没有明确定义的偏移将重置为其对应的初始值。
如果定义了两个或更多值并且没有值的关键字,或者唯一使用的关键字是center,则第一个值表示水平偏移量,第二个值表示垂直偏移量。
- 一个值:
- 必须是
, ,或 left, center, right, top, bottom关键字中的一个。
- 必须是
- 两个值:
- 其中一个必须是
, ,或left, center, right关键字中的一个。 - 另一个必须是
, ,或top, center, bottom关键字中的一个。
- 其中一个必须是
- 三个值:
- 前两个值和只有两个值时的用法相同。
- 第三个值必须是
。它始终代表Z轴偏移量。
语法
- x-offset
- 定义变形中心距离盒模型的左侧的
或 偏移值。
- 定义变形中心距离盒模型的左侧的
- offset-keyword
- left,right,top,bottom或center中之一,定义相对应的变形中心偏移。
- y-offset
- 定义变形中心距离盒模型的顶的
或 偏移值。
- 定义变形中心距离盒模型的顶的
- x-offset-keyword
- left,right或center中之一,定义相对应的变形中心偏移。
- y-offset-keyword
- top,bottom或center中之一,定义相对应的变形中心偏移。
- z-offset
- 定义变形中心距离用户视线(z=0处)的
(不能是 )偏移值。
- 定义变形中心距离用户视线(z=0处)的
keyword | value |
---|---|
left | 0% |
center | 50% |
right | 100% |
top | 0% |
bottom | 100% |
transform-style
概述
1 | 初始值 flat |
示例
1 | transform-style: preserve-3d |
语法
- preserve-3d
- 指定子元素定位在三维空间内
- flat
- 指定子元素位于此元素所在平面内
perspective
概述
perspective 属性指定了观察者与z=0平面的距离,使具有三维位置变换的元素产生透视效果。z>0的三维元素比正常大,而z<0时则比正常小,大小程度由该属性的值决定。
三维元素在观察者后面的部分不会绘制出来,即z轴坐标值大于perspective属性值的部分。
默认情况下,消失点位于元素的中心,但是可以通过设置perspective-origin属性来改变其位置。
当该属性值不为0和none时,会创建新的层叠上下文。
1 | 默认值: none |
示例
1 | /* Keyword value */ |
perspective-origin
概述
perspective-origin属性决定了观察者正在观看的位置,即灭点(vanishing point)位置。
1 | 默认值 50% 50%,效果等同于center center |
示例
1 | /* One-value syntax */ |
- 该属性提供2个参数值。
- 如果提供两个,第一个用于横坐标,第二个用于纵坐标。
- 如果只提供一个,该值将用于横坐标;纵坐标将默认为center。
语法
- x-position指定消失点的横坐标,其值有以下形式:
百分比,相对于元素宽度,可为负值。 长度值,可为负值。 - left,关键字,0值的简记。
- center,关键字,50%的简记。
- right,关键字,100%的简记。
- y-position指定消失点的纵坐标,其值有以下形式:
-百分比,相对于元素的高度,可为负值。 长度值,可为负值。 - top,关键字,0值得简记。
- center,关键字,50%的简记。
- bottom,关键字,100%的简记。
backface-visibility
概述
backface-visibility属性指定当元素背面朝向观察者时是否可见。元素的背面总是透明的,当其朝向观察者时,显示正面的镜像。
- 决定一个元素背面面向用户时是否可见,需要直接在该元素上定义
backface-visibility属性,而不能在其父元素上,因为该属性默认为不可继承。 - 因为2D变换无透视效果,故该属性对2D变换无效。
1 | 默认值 visible |
示例
1 | backface-visibility: visible |
语法
- visible:
指定元素背面可见,允许显示正面的镜像。 - hidden:
指定元素背面不可见