Seletor de Classe: Dando um 'sobrenome' aos elementos

Descubra como usar classes para agrupar e estilizar elementos que compartilham características, independentemente do tipo.

Na lição anterior, você aprendeu sobre o seletor de tipo, que estiliza todos os elementos de um mesmo tipo (todos os <p>, todos os <h1>, etc.). Mas e se você quiser estilizar apenas alguns parágrafos de uma forma, e outros parágrafos de outra forma? Ou talvez estilizar um <h1> e um <p> com o mesmo estilo, mesmo sendo de tipos diferentes?

É aí que entra o seletor de classe. Pense nas classes como sobrenomes que você pode dar aos seus elementos HTML. Assim como várias pessoas da mesma família podem ter o mesmo sobrenome, vários elementos HTML (mesmo de tipos diferentes) podem compartilhar a mesma classe.

Como funciona o Seletor de Classe

Para usar um seletor de classe, você precisa de duas coisas:

  1. No HTML: Adicionar o atributo class ao(s) elemento(s) que você quer estilizar, dando um nome para essa classe.
  2. No CSS: Usar um ponto (.) seguido do nome da classe para selecionar esses elementos.

Sintaxe no HTML:

<tag class="nome-da-classe">Conteúdo</tag>

Sintaxe no CSS:

.nome-da-classe {
  propriedade: valor;
}

Exemplo:

Imagine que você tem um HTML com vários parágrafos e um título, e quer destacar alguns deles.

<!DOCTYPE html>
<html lang="pt-BR">
<head>
  <meta charset="UTF-8">
  <title>Seletor de Classe</title>
  <style>
    /* Aqui vamos definir o CSS */
  </style>
</head>
<body>
  <h1>Título Principal</h1>
  <p>Este é um parágrafo normal.</p>
  <p class="destaque">Este parágrafo está em destaque!</p>
  <p>Outro parágrafo normal.</p>
  <h2 class="destaque">Este subtítulo também está em destaque!</h2>
</body>
</html>

Agora, no seu bloco <style> (ou arquivo CSS externo), você pode criar uma regra para a classe destaque:

.destaque {
  color: purple;
  font-weight: bold;
  background-color: #f0e6fa; /* Um roxo bem clarinho */
  padding: 5px;
}

Resultado:

  • O parágrafo com class="destaque" ficará com texto roxo, em negrito, com fundo roxo claro e um pequeno espaçamento interno.
  • O subtítulo <h2> com class="destaque" também receberá os mesmos estilos, mesmo sendo um tipo de elemento diferente do parágrafo.

Múltiplas Classes em um Elemento

Um elemento HTML pode ter várias classes! Basta separá-las por um espaço no atributo class.

Exemplo no HTML:

<p class="destaque texto-pequeno">Este parágrafo tem dois sobrenomes!</p>

No CSS, você pode ter regras para cada classe:

.destaque {
  color: purple;
  font-weight: bold;
}

.texto-pequeno {
  font-size: 0.8em; /* 80% do tamanho da fonte padrão */
}

Resultado: O parágrafo terá o texto roxo e negrito (da classe destaque) E o tamanho da fonte será menor (da classe texto-pequeno). As propriedades de classes diferentes se combinam!

Combinando Seletores de Tipo e Classe

Você também pode combinar um seletor de tipo com um seletor de classe para ser ainda mais específico.

Sintaxe:

nome-da-tag.nome-da-classe {
  propriedade: valor;
}

Exemplo:

p.destaque {
  border: 1px solid purple; /* Adiciona uma borda apenas aos parágrafos com a classe destaque */
}

h2.destaque {
  text-transform: uppercase; /* Transforma o texto em maiúsculas apenas nos h2 com a classe destaque */
}

Resultado:

  • Apenas os parágrafos com a classe destaque terão uma borda roxa.
  • Apenas os <h2> com a classe destaque terão seu texto em maiúsculas.
  • Os estilos gerais da classe .destaque (cor, negrito, fundo) ainda serão aplicados a ambos.

Quando usar o Seletor de Classe?

O seletor de classe é extremamente versátil e é a forma mais comum de aplicar estilos no CSS. Use-o quando:

  • Você quer aplicar o mesmo estilo a vários elementos, independentemente do seu tipo.
  • Você quer aplicar estilos diferentes a elementos do mesmo tipo.
  • Você quer ter um alto nível de reutilização de estilos.

Vantagens:

  • Flexibilidade: Permite estilizar grupos de elementos de forma muito flexível.
  • Reutilização: Uma classe pode ser aplicada a quantos elementos você quiser, em qualquer lugar da página.
  • Semântica: Os nomes das classes podem descrever a função ou o propósito do elemento, não apenas sua aparência (ex: alerta, menu-item, card).
  • Especificidade média: Mais específico que o seletor de tipo, mas menos que o seletor de ID.

Desvantagens:

  • Se usado em excesso sem um bom planejamento, pode levar a um HTML com muitas classes e um CSS difícil de gerenciar. (Mas isso é mais um problema de organização do que do seletor em si).

O seletor de classe é a sua ferramenta principal para dar personalidade e estilo aos seus elementos HTML de forma organizada e reutilizável.