CSS Transform 介绍(2D 版)
标签搜索
侧边栏壁纸
  • 累计撰写 36 篇文章
  • 累计收到 59 条评论
CSS

CSS Transform 介绍(2D 版)

shthah
2021-03-11 / 0 评论 / 177 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年12月11日,已超过185天没有更新,若内容或图片失效,请留言反馈。

什么是 CSS 变换?

CSS Transform 是作为在网页上快速绘制高级显示和动画的规范而创建的。

变换基础知识(2D)

有四种基本的 CSS 变换:平移、旋转、缩放和倾斜。通过组合这四种变换操作,您可以自由地移动元素。 虽然本文仅限于 2D 变换,但 CSS Transform 也可以执行伪 3D 变换。基础知识是相同的,所以让我们首先了解 2D 变换。

基本操作

  • translate:水平移动
  • rotate:旋转
  • scale:放大缩小
  • skew:倾斜变形

对于旋转以外的三个操作,有两种方法分别指定XY,或者一次指定它们。 基本上没有什么违反直觉的地方,只是偏差不同。 即使你像这样分解它,含义也不会改变,translate(100px, 200px)但它是与不同的转换。 skew本身使用频率并不高,所以没必要强迫自己去记住它,但是遇到问题的时候请记住它。
translateX(100px)
translateY(200px)
skew(30deg, 15deg)
skewX(30deg)
skewY(30deg)
translate(200px,100px) X方向Y方向
translate(200px)
translate(200px,0)
translateX(200px)
translateY(100px)

合并操作

基本转换操作可以任意组合使用。 以下示例将元素缩放 2 倍并顺时针旋转 45 度。

#charactor {
  transform: rotate(45deg) scale(2);
}

还可以多次编写相同类型的转换。

transform 可以在中编写多个变换操作,但必须注意顺序。
translate rotate scale

变形参考点

除了合成顺序之外,一个重要元素是转换的参考点。 旋转和缩放是使用元素的中心作为参考隐式执行的,但实际上, 经常使用中心以外的参考。这可以在这种情况下使用 transform-origin
transform-origin 是一个经常使用的有用功能,但它本身并不是一个特殊功能,就像translate移动操作的简写。
transform-origin: left top; X方向 Y方向
transform-origin: 50% 100%;
transform-origin: 50px -100px

#### 聚合操作 matrix
transform您可以在 中编写任意数量的操作,因此乍一看,根据操作的数量,处理可能会变得越来越繁重。 实际上,多个变换操作一次聚合为一个变换操作matrix,并且该值(矩阵)用于一次执行所有变换操作。
使用这种矩阵的图像变换称为仿射变换,广泛应用于图像处理领域。
transform: rotate(30deg) translate(100px, 100px)
转换为 transform: matrix(0.866,0.5,-0.5,0.866, 36.6,136.6)
浏览器本身会为您进行矩阵计算,因此您通常不需要了解如何计算它们。然而,重要的是要知道在这些矩阵计算中,多个变换操作被合并为一个。

### CSS Transform 的常见问题
#### 添加 Transform 但是不起作用
同时添加多个分开的属性 会被覆盖掉此时需要写成一个

/* 上偏移 */
.float {
  transform: translateY(-100px);
}
/* 倾斜 */
.tilt {
  transform: skewX(30deg);
}
/* 两个公用 */
.float.tilt {
  transform: translateY(-100px) skewX(30deg);
}
0

评论 (0)

取消