IDs e classes: identificando e agrupando elementos

Aprenda a usar os atributos id e class para nomear elementos HTML — essencial para trabalhar com CSS e JavaScript depois.

Até agora, você aprendeu a estruturar seu conteúdo com tags HTML e a agrupá-lo com <div> e <span>. Mas e se você precisar ser mais específico? Como dizer ao CSS "estilize apenas ESTE parágrafo" ou "estilize TODOS os botões VERMELHOS"?

Para isso, o HTML nos dá dois atributos poderosos: id e class. Eles funcionam como "nomes" ou "etiquetas" que você pode dar aos seus elementos HTML para identificá-los e agrupá-los, tornando-os alvos perfeitos para estilização com CSS e manipulação com JavaScript.


O atributo id: identificador único

O atributo id (de identifier) serve para dar um nome único a um elemento HTML dentro de toda a página.

Características principais:

  • Único na página: Cada id deve ser usado apenas uma vez em todo o documento HTML. É como o CPF de uma pessoa — não pode haver dois iguais.
  • Seleção precisa: Permite selecionar um elemento específico com CSS (usando #) ou JavaScript (usando document.getElementById()).
  • Links internos (âncoras): Pode ser usado para criar links que levam a uma seção específica da mesma página (ex: <a href="#secao-contato">).

Exemplo de uso de id:

<style>
  #cabecalho-principal {
    background-color: #333;
    color: white;
    padding: 20px;
    text-align: center;
  }

  #secao-contato {
    border: 1px solid blue;
    padding: 15px;
    margin-top: 20px;
  }
</style>

<header id="cabecalho-principal">
  <h1>Meu Site Incrível</h1>
</header>

<main>
  <section id="secao-contato">
    <h2>Entre em Contato</h2>
    <p>Preencha o formulário abaixo para falar conosco.</p>
  </section>
</main>

Regras para nomes de id:

  • Devem começar com uma letra (A-Z ou a-z).
  • Podem conter letras, números (0-9), hífens (-) e underscores (_).
  • São case-sensitive (maiúsculas e minúsculas fazem diferença).
  • Evite usar nomes muito genéricos como "box" ou "item".

O atributo class: agrupando elementos

O atributo class (de classification) serve para dar um nome de categoria a um ou mais elementos HTML.

Características principais:

  • Pode ser usado múltiplas vezes: O mesmo nome de class pode ser aplicado a quantos elementos você quiser na mesma página. É como uma etiqueta de categoria — vários produtos podem ter a etiqueta "promoção".
  • Um elemento pode ter múltiplas classes: Você pode aplicar várias classes a um único elemento, separando-as por espaço. (ex: <button class="btn btn-primario">).
  • Seleção de grupos: Permite selecionar um grupo de elementos com CSS (usando .) ou JavaScript (usando document.getElementsByClassName() ou document.querySelectorAll()).

Exemplo de uso de class:

<style>
  .card {
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 15px;
    margin: 10px;
    box-shadow: 2px 2px 5px rgba(0,0,0,0.1);
  }

  .card-primario {
    background-color: #e0f7fa; /* Azul claro */
  }

  .card-secundario {
    background-color: #fff3e0; /* Laranja claro */
  }

  .texto-centralizado {
    text-align: center;
  }
</style>

<div class="card card-primario">
  <h3>Produto A</h3>
  <p class="texto-centralizado">Descrição do produto A.</p>
</div>

<div class="card card-secundario texto-centralizado">
  <h3>Produto B</h3>
  <p>Descrição do produto B.</p>
</div>

<button class="btn btn-primario">Comprar</button>
<button class="btn btn-secundario">Detalhes</button>

Regras para nomes de class:

  • As mesmas regras de id se aplicam (começar com letra, etc.).
  • São case-sensitive.
  • É comum usar hífens para separar palavras (ex: card-primario).

id vs. class: quando usar qual?

Característica id class
Unicidade Único por página Pode ser usado múltiplas vezes
Propósito Identificar um elemento específico Agrupar elementos com características comuns
Seleção CSS #nome-do-id .nome-da-classe
Seleção JS document.getElementById('id') document.getElementsByClassName('class') ou document.querySelectorAll('.class')
Prioridade CSS Alta (especificidade) Média (especificidade)
Uso comum Seções únicas (cabeçalho, rodapé), âncoras, alvos de JS. Componentes reutilizáveis (cards, botões), variações de estilo, utilitários CSS.

Boas práticas:

  • Prefira class: Na maioria dos casos, class é a escolha mais flexível e recomendada. Use id com moderação, apenas quando realmente precisar de um identificador único.
  • Evite IDs para estilização: Embora você possa estilizar com id, isso aumenta a especificidade do CSS, tornando-o mais difícil de sobrescrever e reutilizar. class é melhor para estilos.
  • Use id para JavaScript e âncoras: id é excelente para referenciar um elemento específico com JavaScript ou para criar links internos na página.

Combinando IDs e Classes

Um elemento pode ter um id e uma ou mais classs ao mesmo tempo.

<div id="secao-principal" class="container-fluid bg-light">
  <!-- Conteúdo da seção principal -->
</div>

Neste exemplo, secao-principal é um identificador único para JavaScript ou âncoras, enquanto container-fluid e bg-light são classes CSS que aplicam estilos de layout e cor de fundo.


Resumindo

  • id:
    • Identificador único para um elemento na página.
    • Usado para seleção precisa (CSS #, JS getElementById()) e links internos (<a href="#id">).
    • Use com moderação, principalmente para JavaScript e âncoras.
  • class:
    • Nome de categoria que pode ser aplicado a múltiplos elementos.
    • Um elemento pode ter várias classes.
    • Usado para agrupar elementos para estilização (CSS .) e manipulação com JavaScript.
    • Prefira class para a maioria das estilizações.
  • Ambos são atributos essenciais para tornar seus elementos HTML alvos para CSS e JavaScript, permitindo criar páginas dinâmicas e visualmente ricas.