组合变换

同时应用多个 transform 函数

语法说明

transform: translate() rotate() scale() skew();
  • 可以在一个 transform 属性中组合多个变换函数
  • 变换按从左到右的顺序依次应用
  • 顺序很重要!不同的顺序会产生不同的结果
  • 用空格分隔各个函数

示例 1:平移 + 旋转 + 缩放

先移动,再旋转,最后放大

组合
.box {
  transform: 
    translateX(100px)
    rotate(45deg)
    scale(1.2);
}

示例 2:顺序的重要性

先旋转再平移 vs 先平移再旋转

先旋转后平移

A

先平移后旋转

B
/* 先旋转后平移 */
.box-a {
  transform: rotate(45deg) translateX(100px);
}

/* 先平移后旋转 */
.box-b {
  transform: translateX(100px) rotate(45deg);
}

示例 3:复杂组合

结合所有变换类型

全部
.box {
  transform: 
    translate(80px, 30px)
    rotate(30deg)
    scale(1.3)
    skewX(10deg);
}

最佳实践:通常按照 translate → rotate → scale 的顺序组合,这样最符合直觉