CSS3 Transformaciones 2D


Transformaciones CSS3

Las transformaciones CSS3 pueden mover, escalar, girar, alargar o estirar elementos.

CSS3 Transforms

¿Cómo funciona?

El efecto de la transformación es hacer que un elemento cambie de forma, tamaño y posición.

Puede transformar sus elementos utilizando transformaciones 2D o 3D.

Mueva el mouse sobre los siguientes elementos para ver los efectos de transformación 2D y 3D:

Transformaciones 2D
Transformaciones 3D

Compatibilidad del navegador

Los números de la tabla indican la primera versión del navegador que admite la propiedad.

Los números que aparecen inmediatamente antes de -webkit-, -ms- o -moz- indican la primera versión del navegador que admite la propiedad con ese prefijo.

Propiedad
transform 36.0
4.0 -webkit-
10.0
9.0 -ms-
16.0
3.5 -moz-
3.2 -webkit- 23.0
15.0 -webkit-
12.1
10.5 -o-
transform-origin
(two-value syntax)
36.0
4.0 -webkit-
10.0
9.0 -ms-
16.0
3.5 -moz-
3.2 -webkit- 23.0
15.0 -webkit-
12.1
10.5 -o-

Internet Explorer 10, Firefox y Opera son compatibles con la propiedad transform.

Chrome y Safari requieren la versión con prefijo -webkit-.

Nota:Internet Explorer 9 requiere la versión con prefijo -ms-.


Transformaciones 2D

En este capítulo conocerá los métodos de transformación 2D:

  • translate()
  • rotate()
  • scale()
  • skew()
  • matrix()

En el próximo capítulo conocerá las transformaciones 3D.

OperaSafariChromeFirefoxInternet Explorer

Ejemplos

div { transform: rotate(30deg); -ms-transform: rotate(30deg); /* IE 9 */ -webkit-transform: rotate(30deg); /* Safari and Chrome */ }

Pruébelo »


Método translate()

Translate

El método translate() mueve el elemento desde su posición actual según los parámetros dados para la izquierda (eje X) y la parte superior (eje Y).

OperaSafariChromeFirefoxInternet Explorer

Ejemplos

div { transform: translate(50px,100px); -ms-transform: translate(50px,100px); /* IE 9 */ -webkit-transform: translate(50px,100px); /* Safari and Chrome */ }

Pruébelo »

El valor translate(50px, 100px) mueve el elemento 50 píxeles desde la izquierda y 100 píxeles desde la parte superior.


Método rotate()

Rotate

El método rotate() gira un elemento en el sentido de las agujas del reloj según un ángulo dado. Se permiten valores negativos, lo que hace que el elemento gire en sentido antihorario.

OperaSafariChromeFirefoxInternet Explorer

Ejemplos

div { transform: rotate(30deg); -ms-transform: rotate(30deg); /* IE 9 */ -webkit-transform: rotate(30deg); /* Safari and Chrome */ }

Pruébelo »

El valor rotate(30deg) gira el elemento 30 grados en el sentido de las agujas del reloj.


Método scale()

Scale

El método scale() aumenta o disminuye el tamaño del elemento, dependiendo de los parámetros de ancho (eje X) y alto (eje Y):

OperaSafariChromeFirefoxInternet Explorer

Ejemplos

-ms-transform:scale(2,3); /* IE 9 */ -webkit-transform: scale(2,3); /* Safari */ transform: scale(2,3); /*Sintaxis estándar*/

Pruébelo »

scale(2,3) transforma el ancho al doble de su tamaño original y la altura al triple de su tamaño original.


Método skew()

Sintaxis

transform:skew(<angle> [,<angle>]);

Contiene dos valores de parámetro que representan el ángulo de inclinación en los ejes X e Y respectivamente. Si el segundo parámetro está vacío, el valor predeterminado es 0. Un parámetro negativo indica inclinación en la dirección opuesta.

  • skewX(<angle>); indica inclinación solo en el eje X (dirección horizontal).
  • skewY(<angle>); indica inclinación solo en el eje Y (dirección vertical).
OperaSafariChromeFirefoxInternet Explorer

Ejemplos

div { transform: skew(30deg,20deg); -ms-transform: skew(30deg,20deg); /* IE 9 */ -webkit-transform: skew(30deg,20deg); /* Safari and Chrome */ }

Pruébelo »

skew(30deg,20deg)El elemento enXel eje X y el eje YYse inclina 20 y 30 grados.


Método matrix()

Rotate

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

El método matrix tiene seis parámetros e incluye funciones de rotación, escala, movimiento (traslación) e inclinación.

OperaSafariChromeFirefoxInternet Explorer

Ejemplos

Utilice el método matrix() para rotar un elemento div 30°

div { transform:matrix(0.866,0.5,-0.5,0.866,0,0); -ms-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* IE 9 */ -webkit-transform:matrix(0.866,0.5,-0.5,0.866,0,0); /* Safari and Chrome */ }

Pruébelo »


Nuevas propiedades de transformación

A continuación se enumeran todas las propiedades de transformación:

Property Descripción CSS
transform Se aplica a elementos con transformaciones 2D o 3D 3
transform-origin Le permite cambiar la posición del elemento transformado 3

Métodos de transformación 2D

Función Descripción
matrix(n,n,n,n,n,n) Define una transformación 2D usando una matriz de seis valores.
translate(x,y) Define una transformación 2D moviendo el elemento a lo largo de los ejes X e Y.
translateX(n) Define una transformación 2D moviendo el elemento a lo largo del eje X.
translateY(n) Define una transformación 2D moviendo el elemento a lo largo del eje Y.
scale(x,y) Define una transformación de escala 2D, cambiando el ancho y el alto del elemento.
scaleX(n) Define una transformación de escala 2D, cambiando el ancho del elemento.
scaleY(n) Define una transformación de escala 2D, cambiando el alto del elemento.
rotate(angle) Define una rotación 2D, especificando el ángulo en el parámetro.
skew(x-angle,y-angle) Define una transformación de inclinación 2D, a lo largo de los ejes X e Y.
skewX(angle) Define una transformación de inclinación 2D, a lo largo del eje X.
skewY(angle) Define una transformación de inclinación 2D, a lo largo del eje Y.
Otras extensiones