Usando CSS, como posso aplicar mais de um transform
?
Exemplo: A seguir, apenas a tradução é aplicada, não a rotação.
li:nth-child(2) {
transform: rotate(15deg);
transform: translate(-20px,0px);
}
css
css-transforms
Ben
fonte
fonte
transform: scale(1,1.5) rotate(90deg);
, a rotação aconteceria antes da balança.Estou adicionando esta resposta não porque é provável que seja útil, mas apenas porque é verdadeira.
Além de usar as respostas existentes que explicam como fazer mais de uma tradução encadeando-as, você também pode construir a matriz 4x4
Peguei a seguinte imagem de algum site aleatório que encontrei enquanto pesquisava no Google que mostra matrizes rotacionais:
Rotação em torno do eixo x:
Rotação em torno do eixo y:
Rotação em torno do eixo z:
Não consegui encontrar um bom exemplo de tradução, portanto, assumindo que me lembro / entendi direito, tradução:
Veja mais no artigo da Wikipedia sobre transformação , bem como no tutorial Pragamatic CSS3, que explica muito bem. Outro guia que encontrei que explica matrizes de rotação arbitrárias são as anotações de Egon Rath sobre matrizes
A multiplicação de matrizes funciona entre essas matrizes 4x4, é claro, para executar uma rotação seguida por uma tradução, faça a matriz de rotação apropriada e multiplique-a pela matriz de tradução.
Isso pode dar a você um pouco mais de liberdade para acertar e também tornará praticamente impossível para qualquer um entender o que está fazendo, incluindo você em cinco minutos.
Mas, você sabe, funciona.
Edit: Acabei de perceber que deixei de mencionar provavelmente o uso mais importante e prático disso, que é incrementalmente criar transformações 3D complexas via JavaScript, onde as coisas farão um pouco mais de sentido.
fonte
Você também pode aplicar várias transformações usando uma camada extra de marcação, por exemplo:
Isso pode ser realmente útil ao animar elementos com transformações usando Javascript.
fonte
transform-style: preserve-3d
Você pode aplicar mais de uma transformação como esta:
fonte
Em algum momento no futuro, podemos escrever assim:
Isso se tornará especialmente útil ao aplicar classes individuais em um elemento:
Essa sintaxe é definida na especificação CSS Transforms Level 2 em andamento , mas não pode encontrar nada sobre o suporte atual do navegador que não seja o chrome canary. Espero que algum dia eu volte e atualize o suporte ao navegador aqui;)
Encontrei as informações deste artigo que você pode consultar sobre soluções alternativas para navegadores atuais.
fonte
Basta começar a partir daí que, em CSS , se você repetir 2 valores ou mais, o último sempre será aplicado, a menos que você use a
!important
tag, mas ao mesmo tempo evite usar!important
o máximo que puder, portanto, no seu caso, esse é o problema, então o segundo transformar substituir o primeiro neste caso ...Então, como você pode fazer o que deseja, então? ...
Não se preocupe , o transform aceita vários valores ao mesmo tempo ... Portanto, este código abaixo funcionará:
Se você gosta de brincar com a transformação, execute o iframe do MDN abaixo:
Veja o link abaixo para mais informações:
<< transformação CSS >>
fonte
Transforme Girar e Traduzir em uma única linha css: -Como?
fonte