Skip to content

Ttransform

scss
.box {
  transform: <transform-function>;
}

transform-origin

变形原点

scss
.box {
  transform-origin: <x> <y> <z>;
}

.box {
  transform-origin: center; // 默认值
  transform-origin: top left;
  transform-origin: 50px 50px;
}

// 如果有第三个值,必须为<length>,表示Z轴偏移量

transform-style

scss
.box {
  transform-style: flat; // 2d
  transform-style: preserve-3d; // 3d
}

transform-function

matrix()

perspective()

rotate()

旋转

scss
.box {
  transform: rotate(<a>);
  transform: rotate3d(<x>, <y>, <z>, <a>);

  transform: rotateX(45deg);
  transform: rotate3d(1, 0, 0, 45deg);

  transform: rotateY(45deg);
  transform: rotate3d(0, 1, 0, 45deg);

  transform: rotateZ(45deg);
  transform: rotate3d(0, 0, 1, 45deg);
}

// 2d 旋转以 <origin> 作为源点
// 3d 我不懂

scale()

缩放

scss
.box {
  transform: scale(<sx>, <sy>);
  transform: scale3d(<sx>, <sy>, <sz>);

  transform: scaleX(2);
  transform: scale(2, 1);

  transform: scaleY(2);
  transform: scale(1, 2);

  transform: scaleZ(2);
  transform: scale3d(1, 1, 2);
}

// 2d 也可等效于 3d
// scaleX(2) = scale(2, 1) = scale3d(2, 1, 1)

skew()

拉伸

scss
.box {
  transform: skew(<ax>, <ay>);
  transform: skewX(<a>);
  transform: skewY(<a>);
}

translate()

移动

scss
.box {
  transform: translate(<tx>, <ty>);
  transform: translate3d(<tx>, <ty>, <tz>);

  transform: translateX(10px);
  transform: translate(10px, 0);

  transform: translateY(10px);
  transform: translate(0, 10px);

  transform: translateZ(10px);
  transform: translate3d(0, 0, 10px);
}

// 2d 也可等效于 3d
// translateX(10px) = translate(10px, 0) = translate3d(10px, 0, 0)