Buscar..


Sintaxis

  • Transformar rotar
  • transformar: rotar (<angle>)
  • Traducir Transformar
  • transformar: traducir (<length-or-percentage> [, <length-or-percentage>]?)
  • transform: translateX (<length-or-percentage>)
  • transform: translateY (<length-or-percentage>)
  • Transformación sesgada
  • transformar: sesgar (<angle> [, <angle>]?)
  • transformar: skewX (<angle>)
  • transformar: skewY (<angle>)
  • Transformación de escala
  • transform: scale (<scale-factor> [, <scale-factor>]?)
  • transform: scaleX (<scale-factor>)
  • transform: scaleY (<scale-factor>)
  • Transformada de matriz
  • transformar: matriz (<número> [, <número>] {5,5})

Parámetros

Función / Parámetro Detalles
rotate(x) Define una transformación que mueve el elemento alrededor de un punto fijo en el eje Z
translate(x,y) Mueve la posición del elemento en los ejes X e Y
translateX(x) Mueve la posición del elemento en el eje X
translateY(y) Mueve la posición del elemento en el eje Y
scale(x,y) Modifica el tamaño del elemento en los ejes X e Y
scaleX(x) Modifica el tamaño del elemento en el eje X
scaleY(y) Modifica el tamaño del elemento en el eje Y
skew(x,y) Mapeo de corte, o transvección, distorsionando cada punto de un elemento por un cierto ángulo en cada dirección
skewX(x) Mapeo de corte horizontal distorsionando cada punto de un elemento por un cierto ángulo en la dirección horizontal
skewY(y) Mapeo de corte vertical distorsionando cada punto de un elemento por un cierto ángulo en la dirección vertical
matrix() Define una transformación 2D en forma de matriz de transformación.
ángulo El ángulo por el cual el elemento debe rotarse o sesgarse (dependiendo de la función con la que se use). Ángulo puede ser proporcionado en grados ( deg ), gradianes ( grad ), radianes ( rad ) o vueltas ( turn ). En la función skew() , el segundo ángulo es opcional. Si no se proporciona, no habrá (0) sesgo en el eje Y.
longitud o porcentaje La distancia expresada como una longitud o un porcentaje por el cual el elemento debe ser traducido. En la función translate() , la segunda longitud o porcentaje es opcional. Si no se proporciona, entonces no habría (0) traducción en el eje Y.
factor de escala Un número que define cuántas veces se debe escalar el elemento en el eje especificado. En la función scale() , el segundo factor de escala es opcional. Si no se proporciona, el primer factor de escala también se aplicará para el eje Y.

Observaciones

Sistema coordinador 2D

Las transformaciones se realizan de acuerdo con un sistema de coordenadas X / Y 2D. El eje X va de derecha a izquierda y el eje Y va hacia abajo, como se muestra en la siguiente imagen:

Sistema de coordenadas 2D CSS

Por lo tanto, una translateY() positiva Y translateY() va hacia abajo y una translateX() positiva translateX() va a la derecha.

Soporte de navegador y prefijos

  • IE admite esta propiedad desde IE9 con el prefijo -ms- . Las versiones anteriores y Edge no necesitan el prefijo
  • Firefox lo admite desde la versión 3.5 y necesita el prefijo -moz- hasta la versión 15
  • Chrome desde la versión 4 y hasta la versión 34 necesita el prefijo -webkit-
  • Safari necesita el prefijo -webkit- hasta la versión 8
  • Opera necesita el prefijo -o- para la versión 11.5 y el prefijo -webkit- de la versión 15 a la 22
  • Android necesita el prefijo -webkit- de la versión 2.1 a 4.4.4

Ejemplo de transformación prefijada:

-webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
        transform: rotate(45deg);

Girar

HTML

<div class="rotate"></div>

CSS

.rotate {
    width: 100px;
    height: 100px;
    background: teal;
    transform: rotate(45deg);
}

Este ejemplo girará la div en 45 grados hacia la derecha. El centro de rotación está en el centro de la división, 50% desde la izquierda y 50% desde la parte superior. Puede cambiar el centro de rotación estableciendo la propiedad de transform-origin .

transform-origin: 100% 50%;

El ejemplo anterior establecerá el centro de rotación en el centro del extremo del lado derecho.

Escala

HTML

<div class="scale"></div>

CSS

.scale {
    width: 100px;
    height: 100px;
    background: teal;
    transform: scale(0.5, 1.3);
}

Este ejemplo escalará la div a 100px * 0.5 = 50px en el eje X y a 100px * 1.3 = 130px en el eje Y.

El centro de la transformación está en el centro de la división, 50% desde la izquierda y 50% desde la parte superior.

Traducir

HTML

<div class="translate"></div>

CSS

.translate {
    width: 100px;
    height: 100px;
    background: teal;
    transform: translate(200px, 50%);
}

Este ejemplo moverá el div en 200px en el eje X y en 100px * 50% = 50px en el eje Y.

También puede especificar traducciones en un solo eje.

En el eje X:

.translate {
    transform: translateX(200px);
}

En el eje Y:

.translate {
    transform: translateY(50%);
}

Sesgar

HTML

<div class="skew"></div>

CSS

.skew {
    width: 100px;
    height: 100px;
    background: teal;
    transform: skew(20deg, -30deg);
}

Este ejemplo sesgará la div en 20 grados en el eje X y en - 30 grados en el eje Y.
El centro de la transformación está en el centro de la división, 50% desde la izquierda y 50% desde la parte superior.

Vea el resultado aquí .

Transformaciones multiples

Se pueden aplicar múltiples transformaciones a un elemento en una propiedad como esta:

transform: rotate(15deg) translateX(200px);

Esto girará el elemento 15 grados en el sentido de las agujas del reloj y luego lo traducirá 200 px a la derecha.

En transformadas encadenadas, el sistema de coordenadas se mueve con el elemento . Esto significa que la traducción no será horizontal, pero en un eje, gire 15 grados en el sentido de las agujas del reloj como se muestra en la siguiente imagen:

Múltiples transformadas rotar y luego traducir.

Cambiar el orden de las transformaciones cambiará la salida. El primer ejemplo será diferente a

transform: translateX(200px) rotate(15deg);
<div class="transform"></div>
.transform {
  transform: rotate(15deg) translateX(200px);
}

Como se muestra en esta imagen:

Múltiples transformaciones traducen y luego giran.

Transformar origen

Las transformaciones se realizan con respecto a un punto que está definido por la propiedad de transform-origin .

La propiedad toma 2 valores: transform-origin: XY;

En el siguiente ejemplo, el primer div ( .tl ) gira alrededor de la esquina superior izquierda con transform-origin: 0 0; y el segundo ( .tr ) se transforma alrededor de la esquina superior derecha con transform-origin: 100% 0 . La rotación se aplica sobre el hover :

HTML:

<div class="transform originl"></div>
<div class="transform origin2"></div>

CSS:

.transform {
    display: inline-block;
    width: 200px;
    height: 100px;
    background: teal;
    transition: transform 1s;
}

.origin1 {
    transform-origin: 0 0;
}

.origin2 {
    transform-origin: 100% 0;
}

.transform:hover {
    transform: rotate(30deg);
}

El valor predeterminado para la propiedad de origen de transformación es 50% 50% que es el centro del elemento.



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow