CSS Transform

2024 年 8 月 29 日 | 阅读 6 分钟

在 CSS 中,transform 属性用于对元素应用各种变换,例如旋转、缩放、倾斜或平移(移动)它。它允许您操纵网页上元素的外观和位置,而不会影响文档的正常流。

transform 属性是一个简写属性,它将多个单独的变换函数合并到单个声明中。它接受一个或多个变换函数作为值,用空格分隔。每个变换函数代表一种特定类型的变换。

以下是 CSS 中 transform 属性的一个示例

在此示例中,transform 属性应用于 .element 类。它结合了三个变换函数

  • Rotate(45deg):它将元素顺时针旋转 45 度。
  • Scale (1.5):它将元素放大 1.5 倍,使其宽度和高度增加 50%。
  • TranslateX(50px):它将元素沿水平轴向右移动 50 像素。

您可以使用不同变换函数的组合来创建各种视觉效果和动画。transform 属性通常与 CSS 过渡或动画一起使用,以实现平滑的动态变换。

Transform 属性

以下是关于 CSS transform 属性的一些额外细节

1. 多个变换函数:transform 属性可以接受由空格分隔的多个变换函数。例如

在此示例中,应用了旋转和位移动换。element 类。

2. 变换函数的顺序:变换函数的顺序很重要。当应用多个变换函数时,它们会从左到右执行。这意味着您编写变换函数的顺序会影响结果。例如

在这种情况下,元素首先向右平移 50 像素,然后顺时针旋转 45 度。

3. Transform Origin:transform-origin 属性允许您控制变换应用的中心点。默认情况下,transform-origin 设置为元素的中心。但是,您可以使用 top、bottom、left、right 等关键字或像素或百分比的特定值来指定不同的原点。例如

这将元素左上角设置为变换的原点。

4. 3D 变换:除了 2D 变换外,CSS 还支持 3D 变换,允许您在三维空间中操纵元素。这包括 translate3d()、rotate3d() 和 scale3d() 等函数,它们在 X、Y 和 Z 轴上操作。3D 变换提供了创建更具沉浸感和逼真效果的能力。

5. 过渡和动画变换:transform 属性可以使用 CSS 过渡或动画进行动画处理或过渡。您可以结合 transform 和 transition 或 animation 等其他属性来创建平滑且交互式的变换。例如

此代码将过渡效果应用于 transform 属性,使变换在 0.3 秒内以缓和函数平滑发生。

6. 浏览器兼容性:需要注意的是,不同浏览器对不同变换函数和 3D 变换的支持程度可能有所不同。在使用高级变换功能之前,检查浏览器兼容性或为不支持的浏览器提供回退选项是一个好习惯。

7. Matrix () 函数:matrix () 函数允许您使用 6 值矩阵定义 2D 变换。该矩阵代表缩放、倾斜和位移的组合。它比单个变换函数提供了对变换更精细程度的控制。例如

这会将变换矩阵应用于元素,沿 X 轴缩放 1.0,沿 Y 轴缩放 0.5,沿 X 轴倾斜 -0.5,而不改变位移

8. Transform-box 属性:transform-box 属性指定 transform 属性所相对的框。默认情况下,变换是相对于元素的边框框应用的。但是,您可以将此行为更改为相对于元素的内边距框或内容框。例如

这会相对于元素的内边距框将元素放大 2 倍。

9. Transform-style 属性:transform-style 属性与 3D 变换结合使用。它指定子元素是否应保留其 3D 变换(preserve-3d)或展平到父元素的平面(flat)。例如

这确保了子元素在父元素创建的 3D 空间中保留其 3D 变换。

10. Backface-visibility 属性:backface-visibility 属性控制元素在 3D 变换期间的背面是否可见或隐藏。默认情况下,背面是可见的。您可以将其设置为 hidden 来隐藏背面。例如

这可确保在旋转或倾斜元素时,其背面不可见。

CSS transform 是一个强大的属性,允许您以各种方式操纵元素,使您能够创建视觉吸引人和交互式的 Web 体验。

CSS transform 是一个属性,用于对元素应用各种变换,例如旋转、缩放、倾斜或平移(移动)它。它提供了一种操纵网页上元素的外观和位置的方式,而不会影响文档的正常流。transform 属性可用于不同的值来实现不同的效果。

CSS Transform 的值

以下是一些常用的值

  1. Translate:沿水平和垂直轴移动元素。它接受两个值,translateX() 用于水平移动,translateY() 用于垂直移动。例如,transform translate(50px, 100px) 将元素向右移动 50 像素,向下移动 100 像素。
  2. Rotate:顺时针或逆时针旋转元素。它接受一个角度值作为参数。例如,transform rotate(45deg) 将元素顺时针旋转 45 度。
  3. Scale:放大或缩小元素。它接受一个或两个值来指定缩放因子。例如,transform scale(1.5) 使元素大小增加 50%,而 transform: scale(2, 0.5) 使宽度加倍,高度减半。
  4. Skew:沿水平或垂直轴倾斜元素。它接受两个角度值作为参数,skewX() 用于水平倾斜,skewY() 用于垂直倾斜。例如,transform: skewX(30deg) 将元素沿 X 轴倾斜 30 度。
  5. Matrix:使用 6 值矩阵应用 2D 变换。它允许您将多个变换组合成单个变换。这些值表示一个 2x3 矩阵,指定缩放、倾斜和位移。例如,transform matrix(1, 0.5, -0.5, 1, 0, 0) 应用缩放、倾斜和位移的组合。
  6. Perspective:perspective 属性与 3D 变换结合使用以创建 3D 透视效果。它确定查看者与 3D 对象之间的距离。例如,transform: perspective(500px) rotateY(45deg) 应用 500 像素深度的透视变换,并绕 Y 轴将元素旋转 45 度。
  7. Scale3d、rotate3d、translate3d:这些值允许您对元素执行 3D 变换。您可以使用 scale3d()、rotate3d() 和 translate3d() 在三个维度上应用变换,而不是指定像 scaleX、scaleY 或 scaleZ 这样的单独轴。例如,transform: translate3d(100px, 50px, 0) 将元素向右移动 100 像素,向下移动 50 像素,沿 Z 轴移动 0 像素。
  8. Transform-origin:此属性允许您设置变换的原点。默认情况下,变换围绕元素的中心发生。但是,您可以使用 transform-origin 更改变换应用的中心点。例如,transform-origin: top left 将元素的左上角设置为原点。
  9. Transform-style:在使用 3D 变换元素时,此属性指定子元素是否应保留其 3D 变换(preserve-3d)或展平到父元素(flat)的平面。默认设置为 flat。
  10. Backface-visibility:当元素旋转或倾斜时,它们的背面通常是不可见的。此属性控制元素背面是否可见或隐藏。默认情况下它是可见的,但您可以将其设置为 hidden 来隐藏背面。
  11. Transform-function:CSS 提供了各种其他变换函数,可与 transform 属性一起使用。例如,scaleX()、scaleY()、rotateX()、rotateY()、skewX()、skewY() 等。这些函数允许您将特定变换应用于单个轴。

值得注意的是,浏览器对 3D 变换和一些高级变换功能的浏览器支持可能有所不同,因此在使用这些属性和值时,检查跨浏览器兼容性至关重要。

这些只是 transform 属性值的一些示例。CSS transform 还支持 3D 变换和其他高级功能,如透视和 transform-origin。组合不同的变换值和属性允许您在网页上创建复杂且动态的视觉效果。


下一主题#