A Estrutura Fundamental do Documento Web
Todo projeto de front-end inicia com uma hierarquia básica que funciona como o esqueleto da aplicação. O interpretador do navegador lê essa ordem para construir o DOM corretamente.
<html>: Nó raiz que delimita todo o código visível e oculto.<head>: Região reservada para metadados, codificação de caracteres e vínculos a recursos externos.<title>: Define o rótulo exibido na aba do navegador.<body>: Contêiner principal destinado a elementos renderizados na viewport.
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Portal de Projetos</title>
</head>
<body>
<p>Conteúdo principal carregado.</p>
</body>
</html>
Elementos de Conteúdo e Formatação
Cabeçalhos, Blocos e Quebras
A pirâmide visual é montada com seis níveis de títulos, sendo <h1> o de maior relevância semântica. Para textos corridos, utiliza-se <p>, que insere espaçamentos automáticos. Quando se necessita de uma mudança de linha dentro de um bloco sem criar margens, aplica-se <br>.
Estilização e Ênfase Textual
O padrão HTML diferencia intenção semântica de aparência visual:
- Negrito:
<strong>(destaque importante) ou<b>(apenas tipografia). - Itálico:
<em>(ênfase lexical) ou<i>(variação estilística). - Riscado:
<del>(texto removido) ou<s>(marcação visual). - Sublinhado:
<ins>(texto adicionado) ou<u>(decoração).
Recipiente de Layout
O <div> ocupa toda a largura disponível, sendo a escolha padrão para wrapper de seções macro. O <span> opera no fluxo inline, permitindo a aplicação de classes ou identificadores em fragmentso de frase sem quebrar o parágrafo.
Recursos Visuais e Caminhos
Inserção de mídia gráfica ocorre via <img>, tag autossuficiente. Seus parâmetros essenciais incluem:
src: Endereço do recurso.alt: Descrição textual para leitores de tela e motores de busca.width/height: Proporções declaradas.title: Rótulo exibido ao reposicionar o cursor.
Resoluções de caminho seguem duas abordagens: absoluta (URL completa ou raiz do sistema) e relativa ao arquivo corrente (ex: ./midia/, ../public/).
Navegação Hipertexto
O elemento <a> estabelece pontes entre documentos. O atributo href determina o alvo, enquanto target configura o contexto de exibição (_self mantém a guia atual; _blank instanciona uma nova).
<a href="https://repositorio.dev">Acessar Docs</a>
<a href="rotas/perfil.html">Dados do Usuário</a>
<a href="ativos/relatorio.xlsx">Exportar Tabela</a>
<a href="#footer">Descer para o fim</a>
Comentários e Entidades de Caracteres
Blocos delimitados por \<!-- descrição --> são filtrados pelo parser, servindo para anotações de equipe ou desativação seletiva de códigos.
Quando símbolos entram em conflito com a sintaxe XML ou representações especiais são necessárias, aplicam-se entidades mapeadas:
| Caractere | Contexto | Entidade |
|---|---|---|
| Espaço rígido | Prevenção de quebra | |
| < | Menor que | < |
| > | Maior que | > |
| & | Conjunção | & |
| © | Direitos autorais | © |
| € | Moeda Europeia | € |
Organização Tabular de Dados
Tabelas são estritamente recomendadas para informações matriciais. A construção envolve <table>, linhas <tr>, células de conteúdo <td> e rótulos de coluna <th>.
Segmentação Semântica
Para melhorar a acessibilidade e a manutenção, o HTML5 incentiva a divisão lógica em <thead> (cabeçalho fixo), <tbody> (dados iterativos) e <tfoot> (resumos ou totais). Atributos legados de dimensionamento foram substituídos por regras CSS.
Consolidação de Células
A fusão de espaços adjacentes utiliza rowspan (expansão vertical) ou colspan (expansão horizontal) aplicados diretamente ao elemento de célula.
<table>
<thead>
<tr>
<th>Módulo</th>
<th colspan="2">Métricas</th>
</tr>
</thead>
<tbody>
<tr>
<td>Autenticação</td>
<td>98%</td>
<td>12ms</td>
</tr>
</tbody>
</table>
Modelos de Listagem
O padrão web define três variantes para agrupar itens relacionados.
Listas Não Ordenadas (<ul>)
Ideais para conjuntos independentes de hierarquia, renderizados com marcadores visuais padrão.
<ul>
<li>Cache Distribuído</li>
<li>Fila de Mensagens</li>
</ul>
Listas Ordenadas (<ol>)
Comunicam sequência lógica ou ranking, com indexação automática gerenciada pelo navegador.
<ol>
<li>>Inicializar repositório</li>
<li>>Definir variáveis de ambiente</li>
<li>>Executar pipeline</li>
</ol>
Listas de Definição (<dl>)
Estrutura chave-valor otimizada para glossários ou metadados descritivos, combinando <dt> (termo) e <dd> (explicação).
<dl>
<dt>CDN</dt>
<dd>Rede de Distribuição de Conteúdo</dd>
</dl>
Coleta de Dados via Formulários
O container <form> agrega controles interativos e declara o endpoint de processamento.
<form action="/api/v1/enviar" method="POST">
<!-- elementos de entrada -->
</form>
Campos Genéricos (<input>)
O polimorfismo deste elemento é controlado pelo atributo type:
text: Entrada linear padrão.password: Mascara caracteres para segurança.radio: Exclusão mútua em grupo (vinculado pelo atributoname).checkbox: Seleção binária independente.email/tel/url: Validação nativa de padrão.file: Interface para upload local.submit/button: Gatilhos de ação ou roteamento.
O payload transmitido é definido em value, enquanto estados pré-selecionados usam checked ou selected.
Seletores e Áreas Multilinha
O componente <select> encapsual opções <option>, economizando espaço na interface. Para textos extensos, como feedback ou relatórios, o <textarea> aceita definições iniciais de grid via rows e cols, embora a manipulação visual deva ser delegada ao CSS.
Vinculação Acessível (<label>)
Para ampliar a área de foco e garantir compatibilidade com tecnologias assistivas, associa-se o rótulo ao controle através do atributo for, que deve replicar exatamente o id do elemento alvo.
<label for="cpf_campo">Identificação Fiscal:</label>
<input type="text" id="cpf_campo" name="cpf" placeholder="000.000.000-00">