
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.
Trilha de aprendizado · Nível 5 · Tutorial 2
Organizar as linhas de uma tabela em grupos de cabeçalho, corpo e resumo, escolhendo os agrupamentos conforme a função dos dados.
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. 3 min
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. 2 min
Separar conjuntos relacionados com múltiplos tbody
Divida o corpo de uma tabela em conjuntos de linhas relacionados, mantendo um cabeçalho compartilhado. 2 min
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. 2 min
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. 3 min

Passo 1 de 5
Use thead e tbody para organizar linhas sem alterar a função das células de cabeçalho.
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.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
A tabela pode ter no máximo um thead. Quando usado, ele aparece antes do tbody.
Relacione cada elemento à sua função na tabela.
Toque em um item e depois no par correspondente.
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.
Observe onde cada grupo abre e fecha: as células continuam dentro dos elementos tr.
<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>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.
<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>Para agrupar a linha com “Dia” e “Aulas”, substitua A por ___. Digite apenas o nome do elemento.
Para agrupar o registro de segunda-feira, substitua B por ___. Digite apenas o nome do elemento.

Passo 2 de 5
Reconheça linhas de resumo e use tfoot depois do corpo da tabela, mantendo a estrutura de linhas e células.
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
O <tfoot> identifica o resumo, mas não calcula valores. Nesta prática, os totais já serão fornecidos.
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>?
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.
A linha mantém duas células: o rótulo Total na primeira coluna e a quantidade 5 na segunda.
<tfoot>
<tr>
<th scope="row">Total</th>
<td>5</td>
</tr>
</tfoot>Estes blocos ficarão dentro de <table>. Coloque-os na ordem correta, mantendo as linhas e suas duas células.

Passo 3 de 5
Divida o corpo de uma tabela em conjuntos de linhas relacionados, mantendo um cabeçalho compartilhado.
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.
<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
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.
Esta tabela reúne atividades de janeiro e fevereiro em um único tbody. Agora, você vai separar esses dois conjuntos.
<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>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).
Resumo

Passo 4 de 5
Escolha os grupos pelas funções das linhas, sem acrescentar estruturas vazias ou usar a aparência como critério.
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.
<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>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?
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 crie grupos vazios nem invente um resumo só para incluir todas as tags. Uma estrutura suficiente representa os dados que existem.
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
Organize uma tabela com dois conjuntos de registros e um resumo, preservando as células e revisando a hierarquia dos grupos.
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.
<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>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).
Para mostrar que os dois turnos fazem parte da mesma tabela, o segundo tbody deve ficar dentro do primeiro.
Resumo
Use estes critérios para revisar a tabela que você organizou.
Parabéns! Você concluiu: Organizar grupos de linhas com thead, tbody e tfoot
Milhares de cursos online em vídeo, ebooks e áudiobooks.
Para testar seus conhecimentos no decorrer dos cursos online
Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail
Baixe nosso aplicativo pelo QR Code ou pelos links abaixo:.
+ de 10 milhões
de alunos
Certificado grátis e
válido em todo o Brasil
60 mil exercícios
gratuitos
4,8/5 classificação
nas lojas de apps
Cursos gratuitos em
vídeo, ebooks e audiobooks