Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Ordem do transition

Tem diferença deixar o atributo transition antes ou depois do evento :hover?

Por exemplo, antes, esse atributo estava aqui:

.enviar {
    width: 40%;
    padding: 15px 0;
    background-color: darkorange;
    color: white;
    font-weight: bold;
    font-size: 18px;
    border: none;
    border-radius: 5px;
    transition: 1s all; /*antes aqui*/
    cursor: pointer;
}

Depois, eu movi ele para cá:

.enviar:hover {
    background: orange;
    transition: 1s all; /*agora aqui*/
    transform: scale(1.1);
}

Continuou funcionando normalmente, gostaria de saber se tem alguma diferença (semântica, não sei) entre deixar o transition no .enviar ou .enviar:hover. Para mim, faz mais sentido deixar no :hover, porque a transição ocorre justamente quando o mouse passa por cima do elemento.

2 respostas
solução!

Boa tarde. Realmente parece que não há diferença entre deixar em um lugar ou outro, mas na verdade tem. Quando você coloca esse atributo transform no .enviar, tanto quando você passa o mouse em cima e depois quando retira o mouse de cima do botão, ele vai ter este comportamento de demorar 1 segundo para se ajustar. Já quando você coloca o transform no .enviar:hover, apenas quando você passar o mouse em cima ele vai ter este comportamento de demorar 1 segundo, quando você tira o mouse de cima, ele INSTANTANEAMENTE retorna ao seu tamanho original. Faça o teste, coloque de novo la no .enviar, e perçeba quando você retira o mouse o que acontece, e depois faça o mesmo colocando no :hover. Para ficar mais fácil a visualização, recomendo utilizar mais tempo no transform: 3 segundos por exemplo. Espero que ficou claro, qualquer coisa pode comentar aqui.

Bom dia!

Verdade, eu não tinha percebido essa diferença do botão voltar bruscamente a sua aparência original se o transition estiver no :hover, até com 1 segundo deu pra perceber. Obrigada pela resposta.