A tag div: agrupando conteúdo em blocos

Entenda o que é a div, por que ela é tão usada e como ela serve como um armário genérico para organizar partes da página.

Imagine que você está organizando um armário. Você tem roupas, livros, caixas de sapatos, e precisa de uma forma de agrupá-los para que tudo fique arrumado e fácil de encontrar. No HTML, a tag <div> é como um armário genérico — um contêiner neutro que você usa para agrupar outros elementos.

div vem de division (divisão). É um elemento de bloco que não tem nenhum significado semântico próprio. Sua única função é agrupar conteúdo para que você possa:

  1. Estilizar com CSS: Aplicar estilos a um grupo de elementos de uma vez.
  2. Manipular com JavaScript: Selecionar e modificar um grupo de elementos.

O que é uma div?

A <div> é um elemento de bloco genérico. Isso significa que, por padrão:

  • Ela ocupa 100% da largura disponível do seu elemento pai.
  • Ela sempre começa em uma nova linha e força o próximo elemento a começar em uma nova linha.
  • Ela pode conter outros elementos de bloco e elementos inline.

Visualmente, uma <div> sozinha não faz nada. Ela não adiciona espaçamento, bordas ou qualquer estilo por padrão. Ela é um contêiner invisível até que você aplique CSS a ela.

<!-- Exemplo básico de div -->
<div>
  <h2>Título da Seção</h2>
  <p>Este é um parágrafo dentro da div.</p>
  <img src="imagem.jpg" alt="Descrição da imagem">
</div>

<div>
  <p>Outro grupo de conteúdo.</p>
</div>

Por que a div é tão usada?

A <div> é um dos elementos mais usados no HTML porque ela preenche uma necessidade fundamental: a de agrupar elementos sem adicionar semântica.

1. Para estilização com CSS

Imagine que você quer que uma seção específica do seu site tenha um fundo cinza claro e um espaçamento interno. Em vez de aplicar esses estilos a cada parágrafo, título e imagem individualmente, você pode envolvê-los em uma <div> e aplicar o CSS apenas a ela:

<style>
  .secao-destaque {
    background-color: #f0f0f0;
    padding: 20px;
    margin-bottom: 15px;
    border-radius: 8px;
  }
</style>

<div class="secao-destaque">
  <h2>Nossos Serviços</h2>
  <p>Oferecemos soluções completas para o seu negócio.</p>
  <ul>
    <li>Desenvolvimento Web</li>
    <li>Design UX/UI</li>
    <li>Consultoria Técnica</li>
  </ul>
</div>

<div>
  <h2>Outra Seção</h2>
  <p>Conteúdo normal da página.</p>
</div>

2. Para manipulação com JavaScript

Quando você precisa interagir com um grupo de elementos usando JavaScript (por exemplo, ocultar/mostrar uma seção, adicionar um evento a todos os botões de uma área), a <div> serve como um ponto de referência:

<div id="minha-galeria">
  <img src="foto1.jpg" alt="Foto 1">
  <img src="foto2.jpg" alt="Foto 2">
  <button>Próxima Foto</button>
</div>

<script>
  const galeria = document.getElementById('minha-galeria');
  const botao = galeria.querySelector('button');

  botao.addEventListener('click', () => {
    alert('Próxima foto!');
    // Lógica para mudar a foto
  });
</script>

div vs. elementos semânticos

A <div> é um elemento não semântico. Isso significa que ela não descreve o tipo de conteúdo que contém. No HTML5, foram introduzidos muitos elementos semânticos novos que devem ser preferidos à <div> sempre que possível.

Elemento Semântico O que ele representa Exemplo de uso
<header> Conteúdo introdutório ou grupo de navegação. Cabeçalho do site, cabeçalho de uma seção.
<nav> Seção de links de navegação. Menu principal, links de navegação interna.
<main> Conteúdo principal e único do documento. O conteúdo central da página.
<article> Conteúdo independente e auto-contido. Post de blog, notícia, comentário de usuário.
<section> Seção genérica de conteúdo, geralmente com um título. Capítulos, seções temáticas.
<aside> Conteúdo relacionado, mas separado do conteúdo principal. Barras laterais, caixas de citação.
<footer> Rodapé do documento ou de uma seção. Informações de copyright, links relacionados.

Quando usar div e quando usar elementos semânticos?

  • Use elementos semânticos quando o conteúdo do agrupamento tem um significado claro e específico (é um cabeçalho, um menu, um artigo, etc.). Isso melhora a acessibilidade e o SEO.
  • Use <div> quando o agrupamento é puramente para fins de estilização ou manipulação com JavaScript, e o conteúdo não se encaixa em nenhum elemento semântico mais específico.
<!-- ✅ Bom uso de elementos semânticos -->
<header>
  <h1>Meu Site</h1>
  <nav>
    <ul>
      <li><a href="#">Início</a></li>
      <li><a href="#">Sobre</a></li>
    </ul>
  </nav>
</header>

<main>
  <article>
    <h2>Título do Artigo</h2>
    <p>Conteúdo do artigo...</p>
  </article>

  <section>
    <h2>Seção Relacionada</h2>
    <p>Conteúdo da seção...</p>
  </section>
</main>

<footer>
  <p>&copy; 2026 Meu Site</p>
</footer>
<!-- ✅ Bom uso de div (para estilização específica) -->
<main>
  <section>
    <h2>Produtos em Destaque</h2>
    <div class="galeria-produtos"> <!-- div para estilizar a grade de produtos -->
      <div class="card-produto"> <!-- div para estilizar cada card -->
        <h3>Produto A</h3>
        <p>Descrição do produto A.</p>
      </div>
      <div class="card-produto">
        <h3>Produto B</h3>
        <p>Descrição do produto B.</p>
      </div>
    </div>
  </section>
</main>
<!-- ❌ Mau uso de div (poderia ser semântico) -->
<div id="cabecalho"> <!-- Deveria ser <header> -->
  <h1>Meu Site</h1>
  <div id="menu"> <!-- Deveria ser <nav> -->
    <ul>
      <li><a href="#">Início</a></li>
    </ul>
  </div>
</div>

<div id="conteudo-principal"> <!-- Deveria ser <main> -->
  <div class="post"> <!-- Deveria ser <article> -->
    <h2>Título do Post</h2>
    <p>Conteúdo do post...</p>
  </div>
</div>

div e o modelo de caixa (Box Model)

Como um elemento de bloco, a <div> segue o modelo de caixa do CSS. Isso significa que ela tem:

  • Conteúdo: O texto, imagens e outros elementos dentro dela.
  • Padding (preenchimento): Espaço entre o conteúdo e a borda.
  • Border (borda): Linha ao redor do padding.
  • Margin (margem): Espaço fora da borda, separando a <div> de outros elementos.

Entender o modelo de caixa é fundamental para estilizar <div>s e outros elementos de bloco com CSS.


Resumindo

  • <div> é um elemento de bloco genérico e não semântico.
  • Sua principal função é agrupar conteúdo para estilização com CSS ou manipulação com JavaScript.
  • Sempre que possível, prefira elementos semânticos do HTML5 (header, nav, main, article, section, aside, footer) em vez de <div> para dar significado ao seu conteúdo.
  • Use <div> quando o agrupamento é puramente visual ou funcional, e não há um elemento semântico mais apropriado.
  • Entenda que <div> ocupa 100% da largura e começa em uma nova linha.