Aula 10 - Estilos e Classes no DOM 🎨
Objetivo
Objetivo: Aprender a manipular o visual dos elementos da página em tempo real, utilizando a propriedade style para alterações diretas e o objeto classList para gerenciar classes CSS dinamicamente.
1. Alterando Estilos Diretamente (.style) 🖌️
O JavaScript permite alterar qualquer propriedade CSS de um elemento através da propriedade .style.
[!IMPORTANT] No JavaScript, propriedades CSS com hífen (como
background-color) tornam-se camelCase (backgroundColor).
const box = document.querySelector('.caixa');
box.style.backgroundColor = "gold";
box.style.width = "200px";
box.style.border = "2px solid black";
2. Manipulando Classes (classList) 🏷️
Embora o .style seja útil, a melhor prática é definir os estilos no CSS e usar o JavaScript apenas para adicionar ou remover classes. O objeto classList facilita muito esse processo.
Métodos Principais:
add('classe'): Adiciona uma classe ao elemento.remove('classe'): Remove uma classe do elemento.toggle('classe'): Alterna a classe (se existir, remove; se não, adiciona).contains('classe'): Verifica se o elemento possui a classe.
const cartao = document.querySelector('#meu-cartao');
// Alterna entre modo claro e escuro
cartao.classList.toggle('dark-mode');
3. Fluxo de Mudança Visual 📊
graph TD
A[Ação do Usuário] --> B{Decisão Lógica}
B -- Opção A --> C[classList.add('sucesso')]
B -- Opção B --> D[classList.add('erro')]
C --> E[CSS aplica cor Verde]
D --> F[CSS aplica cor Vermelha]
E --> G[Visual alterado no Navegador]
F --> G
4. Prática no Terminal (Simulação) 💻
$ // Verificando as classes de um botão
$ const btn = document.querySelector('button');
$ btn.classList.add('ativo');
$ console.log(btn.className);
> "btn-primario ativo"
$ // Mudando estilo inline
$ btn.style.display = "none";
> "O botão sumiu!"
[!TIP] Prefira sempre o uso de
classList.toggle()para elementos interativos como menus laterais, modais e botões de "curtir".
5. Mini Projeto: Modo Noturno (Dark Mode) 🏆
Crie um botão que altera o visual de toda a página.
1. No CSS, crie uma classe .dark-mode que mude a cor do body para preto e o texto para branco.
2. No JavaScript, selecione o body e o botão.
3. Adicione um evento de clique ao botão que executa document.body.classList.toggle('dark-mode').
6. Exercícios de Fixação 📝
Básicos
- Como se escreve a propriedade CSS
font-sizeno JavaScript? - Qual a principal vantagem de usar
classListem vez de alterar o.stylediretamente?
Intermediários
- Como você removeria a classe
invisivelde um elemento quando ele fosse clicado? - Escreva o código para verificar se um elemento possui a classe
selecionado.
Desafio
- Destaque Dinâmico:
- Imagine uma lista de itens.
- Crie um código que, ao clicar em qualquer item da lista, adicione a classe
.destaquea ele. - Extra: Garanta que apenas UM item da lista tenha a classe destaque por vez (remova dos outros antes de adicionar ao novo).
Próxima Aula: Vamos aprender a trabalhar com grandes volumes de dados com Templates e Listas Dinâmicas! 📜