Usando CSS, ¿cómo puedo aplicar más de uno transform
?
Ejemplo: A continuación, solo se aplica la traducción, no la rotación.
li:nth-child(2) {
transform: rotate(15deg);
transform: translate(-20px,0px);
}
css
css-transforms
Ben
fuente
fuente
transform: scale(1,1.5) rotate(90deg);
, la rotación sucedería antes de la escala.Estoy agregando esta respuesta no porque sea útil, sino porque es verdad.
Además de usar las respuestas existentes que explican cómo hacer más de una traducción al encadenarlas, también puede construir la matriz 4x4 usted mismo
Tomé la siguiente imagen de un sitio aleatorio que encontré mientras buscaba en Google que muestra matrices rotativas:
Rotación alrededor del eje x:
Rotación alrededor del eje y:
Rotación alrededor del eje z:
No pude encontrar un buen ejemplo de traducción, así que suponiendo que lo recuerde / entiendo bien, traducción:
Vea más en el artículo de Wikipedia sobre transformación , así como en el tutorial Pragamatic CSS3 que lo explica bastante bien. Otra guía que encontré que explica las matrices de rotación arbitrarias son las notas de Egon Rath sobre matrices
La multiplicación de matrices funciona entre estas matrices de 4x4, por supuesto, por lo que para realizar una rotación seguida de una traducción, debe hacer la matriz de rotación adecuada y multiplicarla por la matriz de traducción.
Esto puede darle un poco más de libertad para hacerlo bien, y también hará que sea completamente imposible que alguien entienda lo que está haciendo, incluido usted en cinco minutos.
Pero, ya sabes, funciona.
Editar: Me acabo de dar cuenta de que no mencioné probablemente el uso más importante y práctico de esto, que es crear incrementalmente transformaciones 3D complejas a través de JavaScript, donde las cosas tendrán un poco más de sentido.
fuente
También puede aplicar múltiples transformaciones utilizando una capa adicional de marcado, por ejemplo:
Esto puede ser realmente útil al animar elementos con transformaciones usando Javascript.
fuente
transform-style: preserve-3d
Puede aplicar más de una transformación como esta:
fuente
En algún momento en el futuro, podemos escribirlo así:
Esto será especialmente útil cuando se aplican clases individuales en un elemento:
Esta sintaxis se define en la especificación de CSS Transforms Level 2 en curso , pero no puede encontrar nada sobre el soporte actual del navegador que no sea Chrome Chrome. Espero que algún día vuelva y actualice el soporte del navegador aquí;)
Encontró la información en este artículo que quizás desee consultar sobre soluciones alternativas para los navegadores actuales.
fuente
Simplemente comience desde allí que en CSS , si repite 2 valores o más, siempre se aplica el último, a menos que use la
!important
etiqueta, pero al mismo tiempo evite usar!important
tanto como pueda, por lo que en su caso ese es el problema, entonces el segundo transformar anular el primero en este caso ...Entonces, ¿cómo puedes hacer lo que quieres? ...
No se preocupe , transform acepta múltiples valores al mismo tiempo ... Entonces, este código a continuación funcionará:
Si te gusta jugar con transform, ejecuta el iframe de MDN a continuación:
Mira el siguiente enlace para más información:
<< Transformación CSS >>
fuente
Transformar rotar y traducir en una sola línea css: -¿Cómo?
fuente