Skip to content

CSS 2D 转换

CSS transform 属性允许你对元素进行移动、旋转、缩放和倾斜。这些变换发生在二维空间中,并且不会影响周围元素的布局,因为它们是在元素渲染之后才应用的。

transform 属性

transform 属性可以接受一个或多个转换函数 (transform functions) 作为其值。

translate()

translate() 函数用于在水平和/或垂直方向上移动元素。它接受一个或两个值。

  • translate(x, y): 分别在 X 轴和 Y 轴上移动。
  • translate(x): 只在 X 轴上移动。
  • translateX(x): 同上。
  • translateY(y): 只在 Y 轴上移动。
css
div {
  transform: translate(50px, 100px);
}

rotate()

rotate() 函数用于顺时针旋转元素。它接受一个角度值。

  • 单位: deg (度), grad (梯度), rad (弧度), turn (圈)。最常用的是 deg
css
div {
  transform: rotate(20deg);
}

scale()

scale() 函数用于缩放元素的大小。

  • scale(x, y): 分别在 X 轴和 Y 轴上缩放。值 > 1 表示放大,< 1 表示缩小。
  • scale(number): 在 X 和 Y 轴上等比例缩放。
  • scaleX(x): 只在 X 轴上缩放。
  • scaleY(y): 只在 Y 轴上缩放。
css
div {
  transform: scale(2, 0.5); /* 宽度放大到2倍,高度缩小到0.5倍 */
}

skew()

skew() 函数用于在 X 和 Y 轴上倾斜元素。它接受一个或两个角度值。

  • skew(x-angle, y-angle)
  • skewX(angle): 只在 X 轴上倾斜。
  • skewY(angle): 只在 Y 轴上倾斜。
css
div {
  transform: skewX(20deg);
}

transform-origin 属性

默认情况下,所有转换都是围绕元素的中心点 (50% 50%) 发生的。transform-origin 属性允许你改变这个转换的原点。

css
div {
  transform: rotate(45deg);
  transform-origin: 20% 40%;
}

多重转换

你可以在一个 transform 声明中应用多个转换函数,用空格隔开。注意,应用的顺序很重要,因为后面的转换是基于前面转换的结果进行的。

css
div {
  transform: translate(50px) rotate(30deg) scale(1.2);
}

2D 转换与 transitionanimation 属性结合使用时尤其强大,可以创建出平滑、引人注目的动态效果。

本站内容仅供学习和研究使用。