[Livro HTML5 e CSS3] @keyframes não funcionando no Firefox, Opera e Chrome do Mac OS X

html5-css3

#1

Estou utilizando o macOS High Sierra para as implementações. Estou no tópico 8.9 Começando com keyframes em que se faz efeito de animação usando @keyframes no código <h1>Bem vindo!</h1>. Estou seguindo rigorosamente o que está no livro na parte de CSS que é:

h1 {
  animation: appear 2s 0 linear;
}

@keyframes appear {
  0% {
    opacity: 0;
    transform: scale(2);
  }
  70% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    transform: scale(1.2);
  }
}

O código acima funciona no IE (executando via máquina virtual no Virtual Box) e no Safari, já no Firefox, Chrome e Opera não consigo fazer funcionar. Já tentei repetir os comandos com o nome dos vendors -webkit-, -moz-, -ms-, -o- precedendo as propriedades e nada também. O que será que está errado?


#2

Descobri o que foi. O livro cita para usarmos a sintaxe animation: appear 2s 0 linear; no seletor h1, porém ao pesquisar no site https://www.w3schools.com/CSSref/css3_pr_animation.asp, constei que ele especifica que a sintaxe para a propriedade animation ele diz:

animation: name duration timing-function delay iteration-count direction fill-mode play-state;

Ou seja, conclui que estava faltando parâmetro. Procurei então remover essa forma de implementação usando a propriedade animation, e substitui pelas implementações explícitas dos parâmetros de animation usando: animation-name, animation-duration, animation-delay e animation-timing-function, ficando:

h1 {
    animation-name: appear;
    animation-duration: 2s;
    animation-delay: 0s;
    animation-timing-function: linear;
    color: #000;
    font-size: 1.4em;
    text-align: center;
    transform: scale(1.2);
    transform-origin: 50% 50%;
}

Bingo! Funcionou!


#3

CORREÇÃO Número 2: Não precisa necessariamente fazer da forma acima, no livro está apenas precisando adicionar o s no “0” antes do “linear”:

animation: appear 2s 0s linear;