CSS

scale()

scale()

scale() CSS函数定义了在2D平面上调整元素大小的变换。由于缩放的量由矢量定义,因此可以以不同的缩放比调整水平和垂直尺寸。

该缩放变换的特征在于二维矢量。其坐标表示在每个方向上完成多少缩放。如果两个坐标相等,缩放比例是均匀的(各向同性的)并且元素的纵横比被保留(这是一个同态变换homothetic transformation)。

当坐标值在-1,1范围之外时,元素沿着该维度增长; 当处在该范围内时,它随着该维度缩小。如果值是负的,那么结果就是在这个维度上的一个点反射。值1不起作用。

注意:scale()功能只能在2D中缩放。要在3D中缩放,请改用scale3d()

语法

scale()函数用一个或两个值来指定,这些值表示要在每个方向上应用的缩放量。

scale(sx) scale(sx, sy)

可能值

sx ——一个表示缩放矢量的横坐标的<number>。

Cartesian coordinates on ℝ2Homogeneous coordinates on ℝℙ2Cartesian coordinates on ℝ3Homogeneous coordinates on ℝℙ3
sx0 0sysx000sy0001sx000sy0001sx0000sy0000100001

| sx 0 0 sy 0 0 |

实例

X维和Y维一起缩放

HTML

<div>Normal</div> <div class="scaled">Scaled</div>

CSS

div { width: 80px; height: 80px; background-color: skyblue; } .scaled { transform: scale(0.7 /* Equal to scaleX(0.7) scaleY(0.7) */ background-color: pink; }

结果

分别标定X维和Y维,并平移原点

HTML

<div>Normal</div> <div class="scaled">Scaled</div>

CSS

div { width: 80px; height: 80px; background-color: skyblue; } .scaled { transform: scale(2, 0.5 /* Equal to scaleX(2) scaleY(0.5) */ transform-origin: left; background-color: pink; }

结果

另见

  • transform

  • <transform-function>

  • scale3d()