Criação de Tabelas com HTML
Tags Fundamentais para Tabelas
A estrutura de uma tabela em HTML é definida por um conjunto de tags específicas:
<table>: O contêiner principal para toda a tabela.<tr>: Representa uma linha na tabela.<th>: Define uma célula de cabeçalho na linha. O texto geralmente é exibido em negrito e centralizado.<td>: Define uma célula de dados padrão em uma linha.<caption>: Fornece um título ou descrição para a tabela.
Exemplo de Tabela Básica:
<table>
<caption>Previsão do Tempo</caption>
<tr>
<th>Data</th>
<th>Condição</th>
<th>Recomendação</th>
</tr>
<tr>
<td>2023-10-26</td>
<td><img src="sol.png" alt="Ensolarado"></td>
<td>Céu limpo, ótimo para atividades ao ar livre.</td>
</tr>
<tr>
<td>2023-10-27</td>
<td><img src="chuva.png" alt="Chuva leve"></td>
<td>Pequena garoa prevista, lembre-se do guarda-chuva.</td>
</tr>
</table>
Otimizando a Semântica das Tabelas
Para melhorar a estrutura e acessibilidade, utilize tags semânticas:
<thead>: Agrupa as linhas de cabeçalho da tabela.<tbody>: Agrupa as linhas do corpo principal da tabela. Pode ser repetido para organizar dados.<tfoot>: Agrupa as linhas de rodapé da tabela.
Estas tags não alteram a aparência visual, mas organizam o conteúdo de forma lógica.
Exemplo com Tags Semânticas:
<table>
<caption>Previsão do Tempo</caption>
<thead>
<tr>
<th>Data</th>
<th>Condição</th>
<th>Recomendação</th>
</tr>
</thead>
<tbody>
<tr>
<td>2023-10-26</td>
<td><img src="sol.png" alt="Ensolarado"></td>
<td>Céu limpo, ótimo para atividades ao ar livre.</td>
</tr>
<tr>
<td>2023-10-27</td>
<td><img src="chuva.png" alt="Chuva leve"></td>
<td>Pequena garoa prevista, lembre-se do guarda-chuva.</td>
</tr>
</tbody>
<tfoot>
<!-- Informações adicionais do rodapé podem ir aqui -->
</tfoot>
</table>
Controle de Aparência: Bordas e Espaçamento
Atributos como border, cellpadding e cellspacing (embora obsoletos em favor de CSS) controlam a aparência da tabela:
border: Define a espessura da borda da tabela.cellpadding: Controla o espaço interno de cada célula.cellspacing: Controla o espaço entre as células.
Exemplo com Atributos de Estilo (Obsoletos):
<table border="2" cellpadding="15" cellspacing="10">
<caption>Previsão do Tempo Detalhada</caption>
<thead>
<tr>
<th>Data</th>
<th>Condição</th>
<th>Recomendação</th>
</tr>
</thead>
<tbody>
<tr>
<td>2023-10-26</td>
<td><img src="sol.png" alt="Ensolarado"></td>
<td>Céu limpo, ótimo para atividades ao ar livre.</td>
</tr>
<tr>
<td>2023-10-27</td>
<td><img src="chuva.png" alt="Chuva leve"></td>
<td>Pequena garoa prevista, lembre-se do guarda-chuva.</td>
</tr>
</tbody>
</table>
Combinando Células
É possível mesclar células para criar layouts mais complexos:
colspan: Atributo para fazer uma célula se estender por várias colunas.rowspan: Atributo para fazer uma célula se estender por várias linhas.
Exemplo de Combinação de Colunas (colspan):
<table border="1">
<caption>Vendas Mensais</caption>
<thead>
<tr>
<th colspan="2">Produto</th>
<th>Janeiro</th>
<th>Fevereiro</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2">Eletrônicos</td>
<td>Smart TV</td>
<td>150</td>
<td>160</td>
</tr>
<tr>
<td>Smartphone</td>
<td>500</td>
<td>520</td>
</tr>
</tbody>
</table>
Exemplo de Combinação de Linhas (rowspan):
<table border="1">
<caption>Histórico de Pedidos</caption>
<thead>
<tr>
<th>ID Pedido</th>
<th>Cliente</th>
<th>Data</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="2">#1001</td>
<td rowspan="2">Maria Silva</td>
<td>2023-10-20</td>
<td>Enviado</td>
</tr>
<tr>
<td>2023-10-25</td>
<td>Entregue</td>
</tr>
<tr>
<td>#1002</td>
<td>João Santos</td>
<td>2023-10-22</td>
<td>Processando</td>
</tr>
</tbody>
</table>
Alinhamento de Conteúdo em Células
Os atributos align e valign (também obsoletos em favor de CSS) controlam o posicionamento do conteúdo:
align: Define o alinhamento horizontal (left,center,right).valign: Define o alinhamento vertical (top,middle,bottom).
Estes atributos podem ser aplicados a diferentes tags (<table>, <tr>, <th>, <td>) com efeitos distintos.
Construindo Formulários Interativos
Tags Essenciais para Formulários
Formulários permitem a coleta de dados do usuário. As tags principais são:
<form>: O contêiner principal que engloba todos os elementos do formulário.<input>: Um campo de entrada versátil. Seu comportamento é determinado pelo atributotype.
Tipos Comuns de <input>:
text: Campo de texto simples.password: Campo para senhas (caracteres ocultos).checkbox: Caixa de seleção para múltiplas opções.radio: Botão de opção para seleção única dentro de um grupo (definido pelo atributoname).file: Permite o upload de arquivos.submit: Botão para enviar os dados do formulário.reset: Botão para limpar os campos do formulário.
Exemplo de Estrutura de Formulário:
<form action="/processar-dados" method="post">
<label for="nome">Nome:</label>
<input type="text" id="nome" name="nome_usuario"><br>
<label for="senha">Senha:</label>
<input type="password" id="senha" name="senha_usuario"><br>
<p>Interesses:</p>
<input type="checkbox" id="musica" name="interesses" value="musica">
<label for="musica">Música</label><br>
<input type="checkbox" id="esportes" name="interesses" value="esportes">
<label for="esportes">Esportes</label><br>
<p>Gênero:</p>
<input type="radio" id="masculino" name="genero" value="masculino">
<label for="masculino">Masculino</label><br>
<input type="radio" id="feminino" name="genero" value="feminino">
<label for="feminino">Feminino</label><br>
<label for="arquivo">Anexar arquivo:</label>
<input type="file" id="arquivo" name="arquivo_anexo"><br>
<input type="submit" value="Enviar">
<input type="reset" value="Limpar">
</form>
Atributos Importantes de Formulários
action e method
action: Especifica a URL para onde os dados do formulário serão enviados quando submetido.method: Define o método HTTP usado para enviar os dados (GETouPOST).POSTé geralmente preferível para dados sensíveis ou grandes volumes.
<form action="/salvar-cadastro" method="post">
<!-- ... campos do formulário ... -->
<input type="submit" value="Cadastrar">
</form>
checked e selected
checked: Usado em<input type="checkbox">ou<input type="radio">para pré-selecionar uma opção por padrão.selected: Usado em<option>dentro de um<select>para pré-selecionar um item no menu suspenso.
<form>
<input type="checkbox" name="termos" value="aceito" checked> Aceito os termos.<br>
<select name="cidade">
<option value="sp">São Paulo</option>
<option value="rj" selected>Rio de Janeiro</option>
<option value="bh">Belo Horizonte</option>
</select>
</form>
disabled
O atributo disabled impede que o usuário interaja com um elemento de formulário (input, select, textarea, button). O valor desse campo não é enviado com o formulário.
<form>
<input type="text" value="Informação fixa" disabled>
<button type="button" disabled>Botão desativado</button>
</form>
placeholder
O atributo placeholder fornece uma dica de texto dentro de um campo de entrada, que desaparece quando o usuário começa a digitar.
<form>
<input type="text" placeholder="Digite seu e-mail aqui"><br>
<textarea placeholder="Escreva sua mensagem..."></textarea>
</form>
Tags Adicionais para Formulários
<textarea>
Permite a entrada de texto em múltiplas linhas. Os atributos cols e rows definem as dimensões visíveis iniciais (embora CSS seja o método preferido para estilização).
<form>
<label for="comentario">Seu comentário:</label><br>
<textarea id="comentario" name="comentario_usuario" cols="40" rows="5"></textarea>
</form>
<select> e <option>
Criam listas suspensas (menus dropdown). O atributo multiple permite a seleção de múltiplos itens.
size: Define quantas opções são visíveis de uma vez. Semultiplefor usado,sizecontrola a altura da lista.disabledem<option>: Torna uma opção específica não seleiconável.
<form>
<label for="frutas">Escolha suas frutas favoritas:</label><br>
<select id="frutas" name="frutas_favoritas" size="3" multiple>
<option value="maca">Maçã</option>
<option value="banana">Banana</option>
<option value="laranja" selected>Laranja</option>
<option value="uva" disabled>Uva (indisponível)</option>
<option value="manga">Manga</option>
</select>
</form>
<label>
Associa um rótulo a um controle de formulário (input, textarea, select). O atributo for no <label> deve corresponder ao id do controle. Isso melhora a acessibilidade, permitindo que o usuário clique no rótulo para focar ou ativar o controle.
<form>
<div>
<input type="radio" id="opcao_sim" name="resposta" value="sim">
<label for="opcao_sim">Sim</label>
</div>
<div>
<input type="radio" id="opcao_nao" name="resposta" value="nao">
<label for="opcao_nao">Não</label>
</div>
</form>
multiple em <input type="file">
Permite que o usuário selecione múltiplos arquivos para upload.
<form>
<label for="galeria">Envie fotos:</label><br>
<input type="file" id="galeria" name="arquivos_galeria[]" multiple>
</form>