Aula 06 - Tabelas 📊
Objetivo
Objetivo: Aprender a organizar dados tabulares de forma estruturada e semântica utilizando as tags de tabela do HTML5.
1. Quando usar Tabelas? 🤔
Tabelas devem ser usadas exclusivamente para dados tabulares (planilhas, horários, listas de preços, classificações).
- Antigamente: Usava-se tabelas para criar o layout do site. Isso é proibido hoje!
- Hoje: O layout é feito com CSS (Flexbox/Grid), e tabelas são apenas para dados.
2. Estrutura Básica 🧱
Uma tabela é composta por linhas e células:
<table>: O recipiente principal.<tr>(Table Row): Define uma linha.<td>(Table Data): Define uma célula de dados comum.<th>(Table Header): Define uma célula de cabeçalho (geralmente em negrito e centralizada).
Exemplo simples:
3. Semântica de Tabelas 🧠
Para tabelas mais complexas e acessíveis, dividimos em seções:
<thead>: Cabeçalho da tabela (títulos das colunas).<tbody>: O corpo com os dados principais.<tfoot>: O rodapé da tabela (totalizadores, observações).
📊 Fluxo Estrutural
graph TD
T[table] --> TH[thead]
T --> TB[tbody]
T --> TF[tfoot]
TH --> TR1[tr]
TB --> TR2[tr]
TF --> TR3[tr]
TR1 --> TH_CELL[th]
TR2 --> TD_CELL[td]
4. Bordas e Estilo 🎨
Por padrão, as tabelas HTML não têm bordas visíveis. Embora o estilo deva ser feito no CSS, podemos usar o atributo border="1" para visualizar a estrutura durante o aprendizado:
[!NOTE] A tag
<caption>serve para dar um título ou legenda à tabela e deve ser a primeira tag dentro de<table>.
5. Prática: Tabela de Notas 🚀
Vamos criar uma planilha de notas no terminal:
$ mkdir aula-06
$ cd aula-06
$ touch index.html
$ # No seu HTML, crie uma tabela com:
$ # thead: Matéria e Nota
$ # tbody: HTML (10), CSS (9)
6. Mini-Projeto: Tabela de Campeonato 🏆
- Crie uma página de Classificação de Futebol (ou outro esporte).
- Use a estrutura semântica (
<thead>,<tbody>). - As colunas devem ser: Posição, Time, Pontos e Vitórias.
- Adicione pelo menos 4 times.
- Destaque o cabeçalho usando a tag
<th>.
7. Exercícios Progressivos 📝
Básicos
- Qual a tag usada para definir uma linha na tabela?
- Qual a diferença entre as tags
<td>and<th>?
Intermediários
- Por que não devemos usar tabelas para criar o layout (posicionamento) do site?
- Para que servem as tags
<thead>e<tbody>?
Desafio 🧠
- Pesquise sobre os atributos
colspanerowspan. Para que eles servem e como fariam para "unir" duas células em uma tabela?
Próxima Aula: Vamos interagir com o usuário através de Formulários! 📝