Transformaciones 2D CSS

Las transformaciones CSS permite mover, rotar, escalar y sesgar elementos. Una transformación es un efecto que permite que un elemento cambie de forma, tamaño y posición. CSS soporta transformaciones 2D y 3D.

El método translate()

El método translate() mueve elementos de su actual posición, de acuerdo a los parámetros dados por el Eje X y el Eje Y. En el siguiente ejemplo mueve al elemento <div>, 50 pixeles a la derecha y 100 pixeles abajo de su posición actual.

div{
-ms-transform: translate(50px,100px); /* IE9 */
-webkit-transform: translate(50px,100px); /* Safari */
transform: translate(50px,100px);
}

El método rotate()

El método rotate() rota un elemento en sentido de las manecillas del reloj o al contrario según el grado dado. En el siguiente ejemplo se rota el elemento <div> de acuerdo al grado dado.

div {
-ms-transform: rotate(200deg); /* IE9 */
-webkit-transform: rotate(200deg); /* Safari */
transform: rotate(200deg);
}

Usando valores negativos rotará al elemento en contra de las manecillas del reloj. En el siguiente ejemplo se rota al elemento <div> 20 grados en sentido contrario de las manecillas del reloj:

div {
-ms-transform: rotate(); /* IE9 */
-webkit-transform: rotate(-200deg); /* Safari */
transform: rotate(-200degree);
}

El método scale()

El método scale() incrementa o decrementa el tamaño del elemento, de acuerdo a los parámetros dados en width y height. En el siguiente ejemplo se incrementa el elemento <div> a dos veces de su ancho original y a tres veces de su altura original:

div {
-ms-transform: scale(2,3); /* IE9 */
-webkit-transform: scale(2,3); /* Safari */
transform: scale(2,3);
}

En el siguiente ejemplo decrementamos el elemento <div> a la mitad de su ancho y alto original.

div {
-ms-transform: scale(0.5,0.5); /* IE9 */
-webkit-transform: scale(0.5,0,5); /* Safari */
transform: scale(0.5,0,5);
}

El método skewX()

El método skewX() sesga o desvía un elemento a lo largo del eje X por el ángulo dado. En el siguiente ejemplo se desvía el elemento <div> 20 grados a lo largo del eje X:

div {
-ms-transform: skewX(20deg); /* IE9 */
-webkit-transform: skewX(20deg); /* Safari */
transform: skewX(20deg);
}

El método skewY()

El método skewY() desvía un elemento a lo largo del eje Y por el ángulo dado. En el siguiente ejemplo se desvía el elemento <div> 20 grados a lo largo del eje Y:

div {
-ms-transform: skewY(20deg); /* IE8 */
-webkit-transform: skewY(20deg); /* 20deg */
transform: skewY(20deg);
}

El método skew()

El método skew() desvía un elemento a lo largo de los ejes X y Y por el ángulo dado. En el siguiente ejemplo se desvía el elemento <div> 20 grados a lo largo del eje X y 10 grados a lo largo del eje Y:

div {
-ms-transform: skew(20deg,10deg); /* IE9 */
-webkit-transform: skew(20deg,10deg); /* Safari */
transform: skew(20deg,10deg);
}

Si el segundo parámetro no se especifica, toma el valor 0. Así, el siguiente ejemplo desvía el elemento <div> 20 grados a lo largo del eje X:

div {
-ms-transform: skew(20deg); /* IE9 */
-webkit-transform: skew(20deg); /* Safari */
transform: skew(20deg);
}

El método matrix()

El método matrix() combina todos los métodos de transformaciones en uno solo. Este método toma seis parámetros, conteniendo funciones matemáticas, lo cual permite rotar, escalar, mover (trasladar) y desviar (sesgar) a los elementos. Los parámetros son los siguientes:

matrix( scaleX(), skewY(), skewX(), scaleY(), translateX(), translateY() )

div {
-ms-transform: matrix(1,-0.3,1,0,0); /* IE9 */
-webkit-transform: matrix(1,-0.3,1,0,0); /* Safari */
transform: matrix(1,-0.3,1,0,0);
}

Propiedades de Transformaciones CSS

En la siguiente tabla se listan las propiedades de transformaciones 2D:

Propiedad Descripción
transform Aplica a transformaciones 2D o 3D a un elemento.
transform-origin Permite cambiar la posición a elementos transformados.

Métodos de Transformaciones 2D

Función Descripción
matrix() Define una transformación 2D usando una matrix de seis valores.
translate() Define una transformación 2D moviendo un elemento a lo largo de los ejes X y Y.
translateX() Define una transformación 2D moviendo un elemento a lo largo del eje X.
translateY() Define una transformación 2D moviendo un elemento a lo largo del eje Y.
scale() Define una transformación 2D cambiando un elemento en su ancho y alto.
scaleX() Define una transformación 2D cambiando un elemento en su ancho.
scaleY() Define una transformación 2D cambiando un elemento en su altura.
rotate() Define una transformación 2D rotando un elemento, el angulo es especificado en el parámetro.
skew() Define una transformación 2D desviando un elemento a lo largo de los ejes X y Y.
skewX() Define una transformación 2D desviando un elemento a lo largo del eje X.
skewY() Define una transformación 2D desviando un elemento a lo largo del eje Y.