CodeGym/Cursos/Frontend SELF PT/Transformações Combinadas

Transformações Combinadas

Disponível

3.1 Fundamentos das transformações combinadas

O CSS permite combinar várias transformações para criar efeitos visuais complexos. Essas transformações podem incluir translate, rotate, scale e skew, que podem ser unidos em uma única propriedade transform.

A propriedade transform pode conter várias funções de transformação, separadas por espaços. Elas serão aplicadas em sequência, na ordem em que são especificadas. Compreender como diferentes transformações interagem entre si é a chave para criar animações e efeitos complexos.

Sintaxe:

element {
  transform: function1() function2() ... functionN();
}

Exemplo:

CSS
element {
  transform: translate(20px, 20px) rotate(45deg) scale(1.5) skew(10deg, 5deg);
}

Translação e rotação

Neste exemplo, o elemento é movido 50 pixels para a direita e 50 pixels para baixo, depois é rotacionado em 45 graus.

Exemplo:

HTML
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Translação e rotação</title>
    <style>
      .box {
        width: 100px;
        height: 100px;
        background-color: #3498db;
        transform: translate(50px, 50px) rotate(45deg);
      }
    </style>
  </head>
  <body>
    <div class="box"></div>
  </body>
</html>

Explicação do código:

  • .box: o elemento é movido primeiro 50 pixels para a direita e para baixo, depois é rotacionado em 45 graus no sentido horário

3.2 Análise de várias combinações

1. Redimensionamento e inclinação

Neste exemplo, o elemento é redimensionado em 1.5 vezes em ambos os eixos, depois é inclinado em 20 graus no eixo X e em 10 graus no eixo Y.

Exemplo:

HTML
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Redimensionamento e inclinação</title>
    <style>
      .box {
        width: 100px;
        height: 100px;
        background-color: #e74c3c;
        transform: scale(1.5) skew(20deg, 10deg);
      }
    </style>
  </head>
  <body>
    <div class="box"></div>
  </body>
</html>

Explicação do código:

  • .box: o elemento é primeiro redimensionado em 1.5 vezes em ambos os eixos, depois é inclinado em 20 graus no eixo X e em 10 graus no eixo Y

2. Translação, rotação e redimensionamento

Neste exemplo, o elemento é movido 100 pixels para a direita, rotacionado em 30 graus e redimensionado em 2 vezes no eixo X e em 1.5 vezes no eixo Y.

HTML
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Translação, rotação e redimensionamento</title>
    <style>
      .box {
        width: 100px;
        height: 100px;
        background-color: #2ecc71;
        transform: translate(100px, 0) rotate(30deg) scale(2, 1.5);
      }
    </style>
  </head>
  <body>
    <div class="box"></div>
  </body>
</html>

Explicação do código:

  • .box: o elemento é primeiro movido 100 pixels para a direita, depois é rotacionado em 30 graus e redimensionado em 2 vezes no eixo X e em 1.5 vezes no eixo Y

3.3 Impacto da ordem das transformações

Quando várias transformações são combinadas, é importante entender que elas são aplicadas sequencialmente. Isso significa que cada transformação subsequente afetará o resultado da anterior.

Neste exemplo, é demonstrado como alterar a ordem das transformações impacta no resultado final.

Exemplo A: primeiro rotação, depois translação

HTML
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Primeiro rotação, depois translação</title>
    <style>
      .box-a {
        width: 100px;
        height: 100px;
        background-color: #3498db;
        transform: rotate(45deg) translate(50px, 50px);
      }
    </style>
  </head>
  <body>
    <div class="box-a"></div>
  </body>
</html>

Exemplo B: primeiro translação, depois rotação

HTML
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Primeiro translação, depois rotação</title>
    <style>
      .box-b {
        width: 100px;
        height: 100px;
        background-color: #e74c3c;
        transform: translate(50px, 50px) rotate(45deg);
      }
    </style>
  </head>
  <body>
    <div class="box-b"></div>
  </body>
</html>

Explicação do código:

  • .box-a: o elemento é primeiro rotacionado em 45 graus e depois movido 50 pixels para a direita e para baixo, fazendo com que o elemento se mova diagonalmente a partir de sua nova posição após a rotação
  • .box-b: o elemento é primeiro movido 50 pixels para a direita e para baixo e depois rotacionado em 45 graus, fazendo com que o elemento gire em torno de sua nova posição
1
Tarefa
Frontend SELF PT,  nível 23lição 2
Bloqueado
Transformação completa
Transformação completa
1
Tarefa
Frontend SELF PT,  nível 23lição 2
Bloqueado
Ordem das transformações
Ordem das transformações
Comentários
  • Populares
  • Novas
  • Antigas
Você precisa acessar para deixar um comentário
Esta página ainda não tem nenhum comentário