0:00:00.702,0:00:05.963 No último vídeo mostrei como definir[br]estilos em JavaScript, como este aqui. 0:00:06.613,0:00:10.202 Se você definir um monte de estilos em[br]JavaScript, você pode acabar 0:00:10.202,0:00:14.671 com centenas de linhas de código apenas[br]definindo os valores das propriedades CSS. 0:00:14.671,0:00:18.076 E isso pode realmente sobrecarregar[br]o seu JavaScript. 0:00:18.566,0:00:20.666 Há uma outra forma que poderíamos[br]fazer isso. 0:00:20.666,0:00:23.213 Poderíamos criar uma classe CSS, 0:00:23.213,0:00:28.275 e adicionar uma regra CSS para essa classe[br]com os novos estilos que queremos, 0:00:28.275,0:00:33.116 e em seguida, adicionar dinamicamente[br]o nome da classe em JavaScript. 0:00:33.116,0:00:38.932 Vamos começar aqui com a tag ''[br]e tentar fazer isso. 0:00:38.932,0:00:45.798 Vamos fazer uma classe '.catcolors'[br]e a regra CSS para ela. 0:00:45.798,0:00:53.085 E vai ter color: orange (cor: laranja), [br]e background-color: black (fundo: preto). 0:00:54.355,0:00:58.854 Agora, para atribuir isso ao elemento[br]heading, podemos dizer: 0:00:58.854,0:01:05.813 headingEl.className = "catcolors"; 0:01:05.813,0:01:09.485 Podemos eliminar a atribuição da cor 0:01:09.485,0:01:12.222 e da cor de fundo em JavaScript. 0:01:12.222,0:01:13.322 Pronto! 0:01:13.322,0:01:15.113 Assim funcionou. 0:01:15.113,0:01:17.466 Mas notou algo estranho? 0:01:17.466,0:01:21.249 O atributo HTML para nomes de classes[br]é apenas "class". 0:01:21.249,0:01:26.779 Se tivesse feito isso em HTML, teria sido[br]class="catcolors". 0:01:26.779,0:01:31.589 Mas quando eu faço isso em JavaScript,[br]eu tenho que dizer .className, 0:01:31.589,0:01:33.806 o que não estamos acostumados. 0:01:33.806,0:01:39.084 Isso é porque o class é na verdade uma[br]palavra-chave na linguagem JavaScript 0:01:39.084,0:01:42.613 que tem um significado especial[br]para a linguagem. 0:01:42.613,0:01:47.534 Por causa disso, os navegadores decidiram[br]usar "className" para se referir 0:01:47.534,0:01:52.665 ao atributo de classe HTML, apenas[br]para que não se confundissem. 0:01:53.225,0:01:56.613 Lembre-se, se você deseja definir o[br]atributo de classe de um elemento 0:01:56.613,0:02:00.333 você usa .className= 0:02:01.443,0:02:04.383 Agora, para atribuir isso a cada um[br]dos nomes de animais, 0:02:04.383,0:02:06.657 podemos colocá-lo dentro do loop, então: 0:02:06.657,0:02:13.449 nameEls[i].className="catColors"; 0:02:14.609,0:02:19.427 Isso adicionará o nome da classe, mas na[br]verdade, ele irá remover quaisquer classes 0:02:19.427,0:02:23.704 que estavam lá antes, porque[br]dissemos que é igual. 0:02:23.704,0:02:28.236 Se tivéssemos quaisquer classes lá antes,[br]agora já se foram. 0:02:28.236,0:02:32.053 Agora, eles realmente têm classe antes,[br]que é class = "animal". 0:02:32.053,0:02:34.340 E então essa se tornou catColors. 0:02:34.340,0:02:41.305 O que realmente queremos fazer é adicionar[br]um novo nome de classe para este atributo. 0:02:41.305,0:02:47.562 Podemos fazer isso escrevendo[br]+= " catColors". 0:02:47.562,0:02:48.828 Lá vamos nós. 0:02:48.828,0:02:51.901 Essa é a coisa segura a fazer,[br]porque vai pegar 0:02:51.901,0:02:53.904 qualquer que seja a classe anterior, 0:02:53.904,0:02:58.048 adicionar a ela um espaço e[br]depois a nova classe. 0:02:58.998,0:03:02.209 Existe outra maneira de fazer isso[br]em navegadores mais recentes 0:03:02.209,0:03:04.975 utilizando a propriedade classList. 0:03:05.915,0:03:15.135 Então, para fazer isso dizemos:[br]nameEls[i].classList.add("catcolors");. 0:03:16.245,0:03:19.649 Isso é muito mais agradável,[br]mas não funciona em todos os lugares. 0:03:19.649,0:03:24.014 Se você quiser usar isso,[br]você tem que ir na caniuse.com, 0:03:24.014,0:03:26.532 e ter certeza que é suportado[br]em todos os navegadores 0:03:26.532,0:03:28.756 nos quais você queira que[br]sua página funcione. 0:03:28.756,0:03:32.189 É muito mais agradável, mas não é bom[br]se suas páginas pararem 0:03:32.189,0:03:36.254 porque você está usando uma função que[br]o navegador não conhece. 0:03:36.254,0:03:38.143 Por isso só vou comentá-la. 0:03:38.143,0:03:41.337 Porque quero a minha funcionando [br]em um monte de navegadores. 0:03:41.337,0:03:46.067 Têm muitas vezes que queremos [br]mudar os estilos individuais, 0:03:46.067,0:03:48.558 em vez de atribuir nomes de classes. 0:03:48.558,0:03:54.463 Lembre-se que você tem essas duas[br]ferramentas em sua caixa de ferramentas, 0:03:54.463,0:03:58.214 e pense sobre o que poderia ser melhor,[br]dependendo da situação. 0:03:58.214,0:04:00.000 Legendado por [Fernando dos Reis][br]Revisado por [Carlos A. N. C. R.]