Mudando classes no CSS
-
0:01 - 0:06No último vídeo mostrei como definir
estilos em JavaScript, como este aqui. -
0:07 - 0:10Se você definir um monte de estilos em
JavaScript, você pode acabar -
0:10 - 0:15com centenas de linhas de código apenas
definindo os valores das propriedades CSS. -
0:15 - 0:18E isso pode realmente sobrecarregar
o seu JavaScript. -
0:19 - 0:21Há uma outra forma que poderíamos
fazer isso. -
0:21 - 0:23Poderíamos criar uma classe CSS,
-
0:23 - 0:28e adicionar uma regra CSS para essa classe
com os novos estilos que queremos, -
0:28 - 0:33e em seguida, adicionar dinamicamente
o nome da classe em JavaScript. -
0:33 - 0:39Vamos começar aqui com a tag ''
e tentar fazer isso. -
0:39 - 0:46Vamos fazer uma classe '.catcolors'
e a regra CSS para ela. -
0:46 - 0:53E vai ter color: orange (cor: laranja),
e background-color: black (fundo: preto). -
0:54 - 0:59Agora, para atribuir isso ao elemento
heading, podemos dizer: -
0:59 - 1:06headingEl.className = "catcolors";
-
1:06 - 1:09Podemos eliminar a atribuição da cor
-
1:09 - 1:12e da cor de fundo em JavaScript.
-
1:12 - 1:13Pronto!
-
1:13 - 1:15Assim funcionou.
-
1:15 - 1:17Mas notou algo estranho?
-
1:17 - 1:21O atributo HTML para nomes de classes
é apenas "class". -
1:21 - 1:27Se tivesse feito isso em HTML, teria sido
class="catcolors". -
1:27 - 1:32Mas quando eu faço isso em JavaScript,
eu tenho que dizer .className, -
1:32 - 1:34o que não estamos acostumados.
-
1:34 - 1:39Isso é porque o class é na verdade uma
palavra-chave na linguagem JavaScript -
1:39 - 1:43que tem um significado especial
para a linguagem. -
1:43 - 1:48Por causa disso, os navegadores decidiram
usar "className" para se referir -
1:48 - 1:53ao atributo de classe HTML, apenas
para que não se confundissem. -
1:53 - 1:57Lembre-se, se você deseja definir o
atributo de classe de um elemento -
1:57 - 2:00você usa .className=
-
2:01 - 2:04Agora, para atribuir isso a cada um
dos nomes de animais, -
2:04 - 2:07podemos colocá-lo dentro do loop, então:
-
2:07 - 2:13nameEls[i].className="catColors";
-
2:15 - 2:19Isso adicionará o nome da classe, mas na
verdade, ele irá remover quaisquer classes -
2:19 - 2:24que estavam lá antes, porque
dissemos que é igual. -
2:24 - 2:28Se tivéssemos quaisquer classes lá antes,
agora já se foram. -
2:28 - 2:32Agora, eles realmente têm classe antes,
que é class = "animal". -
2:32 - 2:34E então essa se tornou catColors.
-
2:34 - 2:41O que realmente queremos fazer é adicionar
um novo nome de classe para este atributo. -
2:41 - 2:48Podemos fazer isso escrevendo
+= " catColors". -
2:48 - 2:49Lá vamos nós.
-
2:49 - 2:52Essa é a coisa segura a fazer,
porque vai pegar -
2:52 - 2:54qualquer que seja a classe anterior,
-
2:54 - 2:58adicionar a ela um espaço e
depois a nova classe. -
2:59 - 3:02Existe outra maneira de fazer isso
em navegadores mais recentes -
3:02 - 3:05utilizando a propriedade classList.
-
3:06 - 3:15Então, para fazer isso dizemos:
nameEls[i].classList.add("catcolors");. -
3:16 - 3:20Isso é muito mais agradável,
mas não funciona em todos os lugares. -
3:20 - 3:24Se você quiser usar isso,
você tem que ir na caniuse.com, -
3:24 - 3:27e ter certeza que é suportado
em todos os navegadores -
3:27 - 3:29nos quais você queira que
sua página funcione. -
3:29 - 3:32É muito mais agradável, mas não é bom
se suas páginas pararem -
3:32 - 3:36porque você está usando uma função que
o navegador não conhece. -
3:36 - 3:38Por isso só vou comentá-la.
-
3:38 - 3:41Porque quero a minha funcionando
em um monte de navegadores. -
3:41 - 3:46Têm muitas vezes que queremos
mudar os estilos individuais, -
3:46 - 3:49em vez de atribuir nomes de classes.
-
3:49 - 3:54Lembre-se que você tem essas duas
ferramentas em sua caixa de ferramentas, -
3:54 - 3:58e pense sobre o que poderia ser melhor,
dependendo da situação. -
3:58 - 4:00Legendado por [Fernando dos Reis]
Revisado por [Carlos A. N. C. R.]
- Title:
- Mudando classes no CSS
- Description:
-
Esta é uma gravação de vídeo de uma palestra interativa, carregado para tornar mais fácil a criação de legendas. Por favor, assista a palestra interativa original na Khan Academy, onde você pode pausar e editar o código e ver o código em melhor resolução: http://www.khanacademy.org/computer-programming
- Video Language:
- English
- Duration:
- 04:00
Cainã Perri edited Portuguese, Brazilian subtitles for Changing CSS classes | ||
Carlos Augusto Nantes edited Portuguese, Brazilian subtitles for Changing CSS classes | ||
Retired user edited Portuguese, Brazilian subtitles for Changing CSS classes | ||
Retired user edited Portuguese, Brazilian subtitles for Changing CSS classes | ||
Retired user edited Portuguese, Brazilian subtitles for Changing CSS classes | ||
Retired user edited Portuguese, Brazilian subtitles for Changing CSS classes |