解析 matrix(a, b, c, d, e, f) 函数

matrix(a, b, c, d, e, f) 函数接受六个参数,对应 2D 变换矩阵的六个值:

  • a 和 d:控制缩放(scaleX 和 scaleY)。
  • b 和 c:控制倾斜(skewY 和 skewX)。
  • e 和 f:控制平移(translateX 和 translateY)。
transform: matrix(a, b, c, d, e, f);
  • a:水平方向的缩放。取值为 1 时,表示保持原有大小。
  • b:水平方向的倾斜(skewY)。
  • c:垂直方向的倾斜(skewX)。
  • d:垂直方向的缩放。取值为 1 时,表示保持原有大小。
  • e:水平方向的平移距离,单位为像素。
  • f:垂直方向的平移距离,单位为像素。

具体代码分析

transform: matrix(1, 0, 0, 1, 0, -100); 的具体含义是:

  • a = 1:水平缩放系数为 1,表示不缩放。
  • b = 0:水平倾斜为 0,表示不倾斜。
  • c = 0:垂直倾斜为 0,表示不倾斜。
  • d = 1:垂直缩放系数为 1,表示不缩放。
  • e = 0:水平平移距离为 0,表示不平移。
  • f = -100:垂直平移距离为 -100 像素,表示元素在 Y 轴上向上移动 100 像素。

这段 transform: matrix(1, 0, 0, 1, 0, -100); 代码的效果是将元素在垂直方向上平移了 100 像素,向上移动,而不改变其大小、倾斜角度或水平位置。

这是一个简化的形式,通常可以通过更直观的 transform 属性写法来实现同样的效果:

transform: translateY(-100px);

Leave a reply

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

required