Trilha de aprendizado · Nível 5 · Tutorial 2

Organizar grupos de linhas com thead, tbody e tfoot

Organizar as linhas de uma tabela em grupos de cabeçalho, corpo e resumo, escolhendo os agrupamentos conforme a função dos dados.

  • Nível: Iniciante
  • Duração: 12 min
  • 5 passos
Organizar grupos de linhas com thead, tbody e tfoot

Passo 1 de 5

Agrupar o cabeçalho e o corpo da tabela

Use thead e tbody para organizar linhas sem alterar a função das células de cabeçalho.

Uma camada para organizar as linhas

Dois grupos, duas funções

Na tabela que você já conhece, podemos envolver as linhas em grupos:

  • thead reúne a linha ou as linhas de cabeçalho da tabela.
  • tbody reúne as linhas do corpo, com os registros apresentados.

Grupo não é célula

thead não substitui th: o primeiro agrupa linhas; o segundo identifica uma célula de cabeçalho.

Os grupos ficam diretamente dentro de table e contêm elementos tr. As células th e td continuam dentro de cada tr.

Dica

Confira a ordem

A tabela pode ter no máximo um thead. Quando usado, ele aparece antes do tbody.

Relacione elemento e função

Quem organiza o quê?

Relacione cada elemento à sua função na tabela.

Toque em um item e depois no par correspondente.

Agrupar sem trocar as células

Também pode haver th no corpo

No exemplo abaixo, “Produto” e “Quantidade” formam o cabeçalho da tabela.

“Caderno” e “Caneta” identificam suas respectivas linhas. Por isso, permanecem como th com scope="row", mesmo dentro de tbody. Agrupar as linhas não muda a função dessas células.

Os grupos envolvem linhas completas

Observe onde cada grupo abre e fecha: as células continuam dentro dos elementos tr.

html
<table>
  <caption>Estoque de materiais</caption>
  <thead>
    <tr>
      <th scope="col">Produto</th>
      <th scope="col">Quantidade</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <th scope="row">Caderno</th>
      <td>4</td>
    </tr>
    <tr>
      <th scope="row">Caneta</th>
      <td>6</td>
    </tr>
  </tbody>
</table>

Complete os agrupamentos

Quais grupos faltam?

A e B marcam lacunas, não tags válidas para esses grupos. Substitua cada letra pelo nome do elemento, tanto na abertura quanto no fechamento. Preserve as linhas, as células e seus atributos.

html
<table>
  <caption>Aulas por dia</caption>
  <A>
    <tr>
      <th scope="col">Dia</th>
      <th scope="col">Aulas</th>
    </tr>
  </A>
  <B>
    <tr>
      <th scope="row">Segunda-feira</th>
      <td>3</td>
    </tr>
  </B>
</table>

Grupo A

Para agrupar a linha com “Dia” e “Aulas”, substitua A por ___. Digite apenas o nome do elemento.

Grupo B

Para agrupar o registro de segunda-feira, substitua B por ___. Digite apenas o nome do elemento.

Passo 2 de 5

Adicionar um resumo com tfoot

Reconheça linhas de resumo e use tfoot depois do corpo da tabela, mantendo a estrutura de linhas e células.

Resumo não é apenas a última linha

A função do tfoot

O <tfoot> reúne linhas que resumem os dados da tabela, como um total relacionado a uma coluna.

Uma linha pertence a esse grupo pela sua função de resumo, não simplesmente por aparecer no final. O último registro comum continua no <tbody>.

Dica

Marcar não é calcular

O <tfoot> identifica o resumo, mas não calcula valores. Nesta prática, os totais já serão fornecidos.

Identifique a linha de resumo

Qual linha pertence ao tfoot?

Uma tabela de empréstimos tem as colunas Livro e Quantidade. Os registros são Atlas | 2 e Contos | 3, nessa ordem. O total fornecido é 5.

Qual linha deve ficar no <tfoot>?

Coloque o resumo depois do corpo

Ordem e estrutura

Quando os três grupos estão presentes, a ordem dentro de <table> é <thead> → <tbody> → <tfoot>.

A tabela pode ter no máximo um <tfoot>, contendo uma ou mais linhas <tr>. Ele fica depois do fechamento de <tbody>, no mesmo nível, e não dentro dele.

Trecho do resumo

A linha mantém duas células: o rótulo Total na primeira coluna e a quantidade 5 na segunda.

html
<tfoot>
  <tr>
    <th scope="row">Total</th>
    <td>5</td>
  </tr>
</tfoot>

Organize os grupos

Monte a sequência da tabela

Estes blocos ficarão dentro de <table>. Coloque-os na ordem correta, mantendo as linhas e suas duas células.

  1. <tbody> <tr> <th scope="row">Atlas</th> <td>2</td> </tr> <tr> <th scope="row">Contos</th> <td>3</td> </tr> </tbody>
  2. <thead> <tr> <th scope="col">Livro</th> <th scope="col">Quantidade</th> </tr> </thead>
  3. <tfoot> <tr> <th scope="row">Total</th> <td>5</td> </tr> </tfoot>

Passo 3 de 5

Separar conjuntos relacionados com múltiplos tbody

Divida o corpo de uma tabela em conjuntos de linhas relacionados, mantendo um cabeçalho compartilhado.

Conjuntos identificados nos dados

Mais de um corpo na mesma tabela

Uma tabela pode ter vários tbody para representar conjuntos distintos de linhas relacionadas. Categorias ou períodos já identificados nos dados podem justificar essa divisão.

No exemplo, cada categoria ocupa um tbody. Os dois grupos são filhos de table, ficam consecutivos e no mesmo nível — nunca um dentro do outro. Um único thead atende aos dois, pois eles compartilham as mesmas colunas.

Um tbody por categoria

html
<table>
  <thead>
    <tr><th scope="col">Categoria</th><th scope="col">Produto</th></tr>
  </thead>
  <tbody>
    <tr><td>Papelaria</td><td>Caderno</td></tr>
    <tr><td>Papelaria</td><td>Lápis</td></tr>
  </tbody>
  <tbody>
    <tr><td>Brinquedos</td><td>Bola</td></tr>
    <tr><td>Brinquedos</td><td>Pião</td></tr>
  </tbody>
</table>

Dica

O nome do conjunto continua nas células

Separar os elementos tbody não cria títulos visíveis. Mantenha “Papelaria” e “Brinquedos” nas células: o agrupamento não substitui essas informações.

Reorganize por mês

Esta tabela reúne atividades de janeiro e fevereiro em um único tbody. Agora, você vai separar esses dois conjuntos.

Tabela para reorganizar

html
<table>
  <thead>
    <tr><th scope="col">Mês</th><th scope="col">Atividade</th></tr>
  </thead>
  <tbody>
    <tr><td>Janeiro</td><td>Leitura</td></tr>
    <tr><td>Janeiro</td><td>Desenho</td></tr>
    <tr><td>Fevereiro</td><td>Música</td></tr>
    <tr><td>Fevereiro</td><td>Teatro</td></tr>
  </tbody>
</table>

Crie os dois grupos

Copie o HTML e divida o corpo em dois elementos tbody, um por mês. Preserve o cabeçalho compartilhado, a ordem das linhas e o conteúdo das células. Depois do código, justifique a divisão em uma frase.

Escreva pelo menos 80 caracteres (0/80).

Confira sua organização

Resumo

Uma divisão com significado

  • Cada tbody representa um conjunto de linhas relacionado por um critério presente nos dados.
  • Os tbody ficam consecutivos e no mesmo nível, depois do thead compartilhado e antes do tfoot, se houver.
  • As informações que identificam os conjuntos continuam nas células.

Passo 4 de 5

Escolher somente os grupos necessários

Escolha os grupos pelas funções das linhas, sem acrescentar estruturas vazias ou usar a aparência como critério.

Uma tabela sem grupos extras

Não é obrigatório incluir thead e tfoot em toda tabela. Neste exemplo, os dias são cabeçalhos de linha: os th permanecem no tbody, mesmo sem thead. Como não há conjuntos distintos nem resumo, um único tbody basta.

Cabeçalhos de linha no corpo

html
<table>
  <caption>Horários de atendimento</caption>
  <tbody>
    <tr>
      <th scope="row">Segunda-feira</th>
      <td>9h às 18h</td>
    </tr>
    <tr>
      <th scope="row">Terça-feira</th>
      <td>9h às 17h</td>
    </tr>
  </tbody>
</table>

Escolha pelo conteúdo

Qual estrutura é suficiente?

Uma tabela tem uma linha com os cabeçalhos “Produto” e “Quantidade”, seguida por produtos de um único conjunto. Não há resumo. Qual organização atende aos dados sem grupos desnecessários?

Organização não é decoração

Os grupos expressam a organização dos dados, mas não garantem mudanças visuais. Não divida o corpo apenas para tentar obter cores ou bordas: a separação precisa representar conjuntos relacionados de linhas.

Dica

Não preencha uma lista de tags

Não crie grupos vazios nem invente um resumo só para incluir todas as tags. Uma estrutura suficiente representa os dados que existem.

Justifique sua escolha

O que você manteria?

Uma tabela de ficha técnica tem duas linhas: “Material — algodão” e “Peso — 200 g”. Os rótulos são th; não há cabeçalho de colunas nem resumo.

Alguém sugere adicionar thead e tfoot vazios e dividir o corpo só para obter bordas. Quais grupos você usaria e por quê? Os th continuariam no corpo?

Escreva pelo menos 30 caracteres (0/30).

Passo 5 de 5

Aplicar e revisar a organização completa

Organize uma tabela com dois conjuntos de registros e um resumo, preservando as células e revisando a hierarquia dos grupos.

Desafio: organize sem alterar os dados

Dois turnos, um cabeçalho compartilhado

Esta tabela reúne inscrições em oficinas da manhã e da tarde. Organize os registros por turno, mantendo o cabeçalho compartilhado e o resumo final. O total de 40 já está pronto: não é necessário calcular nada.

Tabela para reorganizar

html
<table>
  <caption>Inscrições por oficina e turno</caption>
  <tr>
    <th scope="col">Oficina</th>
    <th scope="col">Turno</th>
    <th scope="col">Inscrições</th>
  </tr>
  <tr><th scope="row">Desenho</th><td>Manhã</td><td>12</td></tr>
  <tr><th scope="row">Pintura</th><td>Manhã</td><td>8</td></tr>
  <tr><th scope="row">Teatro</th><td>Tarde</td><td>9</td></tr>
  <tr><th scope="row">Música</th><td>Tarde</td><td>11</td></tr>
  <tr><th scope="row">Total</th><td>Todos os turnos</td><td>40</td></tr>
</table>

Adicione os grupos e justifique

Copie a tabela e adicione os grupos adequados. Preserve caption, linhas, células, valores e atributos scope. Cole o HTML completo e acrescente duas frases: por que usar dois corpos e por que colocar a linha Total no grupo de resumo?

Escreva pelo menos 100 caracteres (0/100).

Última checagem: o aninhamento

Um corpo dentro do outro?

Para mostrar que os dois turnos fazem parte da mesma tabela, o segundo tbody deve ficar dentro do primeiro.

Sua revisão final

Resumo

Confira antes de concluir

Use estes critérios para revisar a tabela que você organizou.

  • Função: um cabeçalho compartilhado, dois conjuntos separados por turno e um resumo com o total fornecido.
  • Ordem nesta tabela: caption, thead, tbody, tbody e tfoot.
  • Hierarquia: grupos dentro de table, linhas tr dentro dos grupos e células dentro das linhas.
  • Preservação: caption, células e atributos scope permanecem intactos. Agrupar linhas não muda a função de th ou td.
  • Em outras tabelas, use somente os grupos justificados pelos dados, sem inventar divisões ou resumos.

Grupos organizam linhas; células mantêm suas funções

Parabéns! Você concluiu: Organizar grupos de linhas com thead, tbody e tfoot

Você concluiu “Organizar grupos de linhas com thead, tbody e tfoot”. Agora você pode escolher os grupos pela função dos dados e conferir sua ordem e seu aninhamento.

Baixe o Aplicativo agora para ter acesso a + de 5000 cursos gratuitos, exercícios, certificado e muito conteúdo sem pagar nada!

  • Cursos online 100% gratuitos do início ao fim

    Milhares de cursos online em vídeo, ebooks e áudiobooks.

  • Mais de 60 mil exercícios gratuitos

    Para testar seus conhecimentos no decorrer dos cursos online

  • Certificado Digital gratuito válido em todo o Brasil

    Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail

Aplicativo Cursa na tela de ebook, na tela de curso em vídeo e na tela de exercícios do curso, mais o certificado de conclusão de curso