Transformaciones 2D CSS

Transformaciones 2D CSS

CSS 转换(transforms)允许您移动、旋转、缩放和倾斜元素。

把鼠标悬停在下面的元素上,可以查看 2D 转换:

2D rotate

在本章中,您将学习如下 CSS 属性:

  • transform

浏览器支持

表格中的数字指注明了完全支持该属性的首个浏览器版本。

Atributo Chrome IE Firefox Safari Opera
transform 36.0 10.0 16.0 9.0 23.0

Métodos de transformación 2D de CSS

通过使用 CSS transform 属性,您可以利用以下 2D 转换方法:

  • translate()
  • rotate()
  • scaleX()
  • scaleY()
  • scale()
  • skewX()
  • skewY()
  • skew()
  • matrix()

提示:您将在下一章中学习 3D 转换。

translate() 方法

Traducir

translate() 方法从其当前位置移动元素(根据为 X 轴和 Y 轴指定的参数)。

下面的例子把 <div> 元素从其当前位置向右移动 50 个像素,并向下移动 100 个像素:

Ejemplo

div {
  transform: translate(50px, 100px);
}

Prueba personalmente

rotate() 方法

Girar

rotate() 方法根据给定的角度顺时针或逆时针旋转元素。

下面的例子把 <div> 元素顺时针旋转 20 度:

Ejemplo

div {
  transform: rotate(20deg);
}

Prueba personalmente

使用负值将逆时针旋转元素。

下面的例子把 <div> 元素逆时针旋转 20 度:

Ejemplo

div {
  transform: rotate(-20deg);
}

Prueba personalmente

scale() 方法

Escalar

scale() 方法增加或减少元素的大小(根据给定的宽度和高度参数)。

下面的例子把 <div> 元素增大为其原始宽度的两倍和其原始高度的三倍:

Ejemplo

div {
  transform: scale(2, 3);
}

Prueba personalmente

下面的例子把 <div> 元素减小为其原始宽度和高度的一半:

Ejemplo

div {
  transform: scale(0.5, 0.5);
}

Prueba personalmente

scaleX() 方法

scaleX() 方法增加或减少元素的宽度。

下面的例子把 <div> 元素增大为其原始宽度的两倍:

Ejemplo

div {
  transform: scaleX(2);
}

Prueba personalmente

以下例子把 <div> 元素缩减为其原始宽度的一半:

Ejemplo

div {
  transform: scaleX(0.5);
}

Prueba personalmente

Método scaleY()

scaleY() El método aumenta o reduce la altura del elemento.

El siguiente ejemplo hace que el elemento <div> se aumente a tres veces su altura original:

Ejemplo

div {
  transform: scaleY(3);
}

Prueba personalmente

El siguiente ejemplo hace que el elemento <div> se reduzca a la mitad de su altura original:

Ejemplo

div {
  transform: scaleY(0.5);
}

Prueba personalmente

Método skewX()

skewX() El método hace que el elemento se incline en un ángulo dado a lo largo del eje X.

El siguiente ejemplo hace que el elemento <div> se incline 20 grados a lo largo del eje X:

Ejemplo

div {
  transform: skewX(20deg);
}

Prueba personalmente

Método skewY()

skewY() El método hace que el elemento se incline en un ángulo dado a lo largo del eje Y.

El siguiente ejemplo hace que el elemento <div> se incline 20 grados a lo largo del eje Y:

Ejemplo

div {
  transform: skewY(20deg);
}

Prueba personalmente

Método skew()

skew() El método hace que el elemento se incline en un ángulo dado a lo largo del eje X e Y.

El siguiente ejemplo hace que el elemento <div> se incline 20 grados a lo largo del eje X y 10 grados a lo largo del eje Y:

Ejemplo

div {
  transform: skew(20deg, 10deg);
}

Prueba personalmente

Si no se especifica el segundo parámetro, su valor es cero. Por lo tanto, el siguiente ejemplo hace que el elemento <div> se incline 20 grados a lo largo del eje X:

Ejemplo

div {
  transform: skew(20deg);
}

Prueba personalmente

Método matrix()

Girar

matrix() El método combina todos los métodos de transformación 2D en uno.

matrix() El método puede aceptar seis parámetros, incluyendo funciones matemáticas, que le permiten girar, escalar, mover (translación) y inclinar el elemento.

Los parámetros son los siguientes: matrix(scaleX(),skewY(),skewX(),scaleY(),translateX(),translateY())

Ejemplo

div {
  transform: matrix(1, -0.3, 0, 1, 0, 0);
}

Prueba personalmente

Atributos de transformación CSS

La siguiente tabla enumera todos los atributos de transformación 2D:

Atributo Descripción
transform Aplicar una transformación 2D o 3D al elemento.
transform-origin Permite cambiar la posición del elemento que se transformará.

Métodos de transformación 2D de CSS

Función Descripción
matrix(n,n,n,n,n,n) Definición de la transformación 2D, utilizando una matriz de seis valores.
translate(x,y) Definición de la transformación 2D, desplazamiento del elemento a lo largo de los ejes X e Y.
translateX(n) Definición de la transformación 2D, desplazamiento del elemento a lo largo del eje X.
translateY(n) Definición de la transformación 2D, desplazamiento del elemento a lo largo del eje Y.
scale(x,y) Definir la transición de escalado 2D, cambiando el ancho y la altura del elemento.
scaleX(n) Definir la transición de escalado 2D, cambiando el ancho del elemento.
scaleY(n) Definir la transición de escalado 2D, cambiando la altura del elemento.
rotate(ángulo) Definir la rotación 2D, especificando el ángulo en los parámetros.
skew(ángulo-x,ángulo-y) Definir la transición de inclinación 2D, a lo largo de los ejes X e Y.
skewX(ángulo) Definir la transición de inclinación 2D, a lo largo del eje X.
skewY(ángulo) Definir la transición de inclinación 2D, a lo largo del eje Y.