¿Cómo hacer rotaciones con CSS3?

07-08-2014 - Andrés Cruz

¿Cómo hacer rotaciones con CSS3?

Este material forma parte de mi curso y libro completo; puedes adquirirlos desde el apartado de libros y/o cursos.

En esta entrada veremos como realizar rotaciones sobre cualquier elementos HTML empleando la propiedad transform de CSS3.

La propiedad transform en CSS3 permite aplicar transformaciones 2D y 3D a los elementos HTML en una página web; en esta entrada nos interesa aprender a realizar una de estas transformaciones, que son las rotaciones; las propiedades posibles a emplear son las siguientes:

  • rotate(ángulo): Define una rotación en su espacio 2D.
  • rotate3d(x,y,z,ángulo): Define una rotación 3D en todos los ejes.
  • rotateX(ángulo): Define una rotación 3D alrededor del eje de las X.
  • rotateY(ángulo): Define una rotación 3D alrededor del eje de las Y.
  • rotateZ(ángulo): Define una rotación 3D alrededor del eje de las Z.

Consideraciones

  • El ángulo debe de ser definido en grados (deg por sus siglas en inglés).
  • Es recomendable utilizar los prefijos de los navegadores web para garantizar su compatibilidad.
  • Con todas las propiedades vistas anteriormente es posible definir las rotaciones en un espacio 2D y 3D según un punto de origen definido por la propiedad transform-origin.

Definiendo una regla en CSS para las transformaciones

div
{
transform:rotate(7deg);
-ms-transform:rotate(7deg); /* IE 9 en adelante*/
-webkit-transform:rotate(7deg); /* Opera, Chrome, y Safari */
}

Ejemplos de rotaciones sobre elementos

En todos los ejemplos se aplicarán rotaciones a los div contenedores de las imágenes desde los 0 grados a los 360 grados en un ciclo infinito con ayuda de un poco de JavaScript.

rotate(angulo):

Con la propiedad rotate es posible definir las rotaciones en un espacio 2D; según el signo (positivo o negativo) del ángulo especificado puede ocurrir una de las siguientes condiciones:

  • Sentido Horario o hacia la derecha si el ángulo es positivo.
  • Sentido Antihorario o hacia la izquierda si el ángulo es negativo.

Primero veremos un ejemplo de lo anterior; básicamente consiste en aplicar las rotaciones de un par de imágenes en sentido horario cuando el grado es positivo y en sentido antihorario en caso contrarío:

  • Rotaciones horarias con un grado positivo:

    Rotaciones Horarias

    logo html5
    rotate()
  • Rotaciones antihorarias con un grado negativo:

    Rotaciones Antihorarias

    rotate()

rotateX(ángulo), rotateY(ángulo) y rotateZ(ángulo):

Cómo pudieron haberse dado cuenta, el nombre de la propiedad indica el eje afectado por la rotaciones:

  • Rotación en el eje X

    Rotación en el eje X

    logo html5
    rotateX()
  • Rotación en el eje Y

    Rotación en el eje Y

    rotateY()
  • Rotación en el eje Z

    Rotación en el eje Z



    rotateZ()

rotate3d(ángulo)

Ahora aplicaremos la rotación en los tres ejes con una sola propiedad:

    Rotación en los ejes X, Y y Z

    Rotación en los ejes X, Y y Z



    rotate3d()

Si quisiéramos que el elemento sólo rotará en el eje de las X con la propiedad rotate3d() podríamos hacer lo siguiente:

rotateX(angulo) es equivalente a rotate3d(1, 0, 0, ángulo).

Puedes leer más sobre esta propiedad en el sitio de Desarrolladores de Mozilla.


Andrés Cruz
Desarrollo con Laravel, Django, Flask, CodeIgniter, HTML5, CSS3, MySQL, JavaScript, Vue, Android, iOS, Flutter

Andrés Cruz en Udemy

Acepto recibir anuncios de interes sobre este Blog.

Conozca nuestros cursos sobre Laravel, CodeIgniter, Flutter, Electron, Django, Flask y muchos más!

Ver los cursos
¡Hazte afiliado en Gumroad!

!Cursos desde!

4$

En Academia

Ver los cursos

!Libros desde!

1$

Ver los libros
!Web Alojada en Hostinger!