Estrutura básica de um documento HTML
Monte o esqueleto completo de uma página: DOCTYPE, html, head e body — e entenda o papel de cada parte.
Todo documento HTML segue uma estrutura padrão — um conjunto de elementos obrigatórios que todo navegador espera encontrar. Entender essa estrutura é como aprender a montar o esqueleto antes de adicionar qualquer músculo ou roupa por cima.
Nesta lição, você vai entender o que é cada parte, por que ela existe e qual é o seu papel.
A estrutura completa
Veja como um documento HTML básico se parece:
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Minha Primeira Página</title>
</head>
<body>
<h1>Olá, mundo!</h1>
<p>Este é o meu primeiro parágrafo.</p>
</body>
</html>
À primeira vista pode parecer muita coisa, mas cada linha tem um propósito claro. Vamos destrinchar cada uma delas.
1. <!DOCTYPE html> — A declaração de tipo
<!DOCTYPE html>
Essa é sempre a primeira linha de qualquer documento HTML moderno. Ela não é uma tag HTML — é uma instrução para o navegador.
Ela diz: "Ei, navegador — esse arquivo aqui é um documento HTML5. Por favor, interprete-o usando as regras modernas."
Sem essa declaração, o navegador pode entrar em um modo chamado "quirks mode" (modo peculiar), onde ele tenta adivinhar o tipo do documento e pode renderizar a página de forma estranha e imprevisível.
💡 Nas versões antigas do HTML, o DOCTYPE era uma linha longa e complicada. No HTML5, foi simplificado para apenas
<!DOCTYPE html>. Muito mais fácil!
2. <html> — O elemento raiz
<html lang="pt-BR">
...
</html>
A tag <html> é a raiz do documento — ela envolve absolutamente
tudo que está na página. Pense nela como a caixa que contém todas as
outras caixas.
O atributo lang informa ao navegador e às tecnologias assistivas
(como leitores de tela) em qual idioma o conteúdo está escrito.
Para português do Brasil, usamos lang="pt-BR".
Esse atributo é importante por dois motivos:
- Acessibilidade: leitores de tela usam o idioma para pronunciar o texto corretamente
- SEO: buscadores como o Google usam essa informação para entregar a página para o público certo
3. <head> — A área de configurações
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Minha Primeira Página</title>
</head>
O <head> é a área de bastidores da página — tudo o que fica
aqui é invisível para o usuário, mas essencial para o funcionamento
correto da página.
Pense no <head> como as configurações de um celular: você não vê
essas configurações enquanto usa o aparelho, mas elas definem como
tudo funciona por baixo.
Vamos conhecer o que normalmente fica dentro do <head>:
<meta charset="UTF-8">
Define a codificação de caracteres do documento. O UTF-8 é o padrão que permite exibir corretamente letras acentuadas, cedilha, emojis e caracteres de praticamente todos os idiomas do mundo.
Sem essa linha, palavras como "coração", "ação" e "português" podem aparecer com caracteres estranhos na tela.
<meta name="viewport" ...>
Essa meta tag é responsável pela responsividade da página — ou seja, por fazer com que ela se adapte corretamente à tela de dispositivos móveis.
<meta name="viewport" content="width=device-width, initial-scale=1.0">
width=device-width→ a largura da página se adapta à largura do dispositivoinitial-scale=1.0→ define o nível de zoom inicial como 100%
Sem essa linha, seu site vai aparecer minúsculo em celulares, como se fosse uma versão reduzida da tela do computador.
<title>
<title>Minha Primeira Página</title>
Define o título da página — o texto que aparece na aba do navegador e nos resultados de busca do Google.
É um dos elementos mais importantes para SEO e para a experiência do usuário. Um bom título descreve claramente o conteúdo da página.
4. <body> — O conteúdo visível
<body>
<h1>Olá, mundo!</h1>
<p>Este é o meu primeiro parágrafo.</p>
</body>
O <body> é onde a mágica acontece visualmente. Tudo o que
você quer que apareça na tela — textos, títulos, imagens, botões,
formulários, links — vai dentro do <body>.
Se o <head> são os bastidores, o <body> é o palco.
Visualizando a hierarquia
Uma forma clara de entender essa estrutura é vê-la como uma hierarquia de caixas dentro de caixas — como uma boneca matrioska:
documento
└── <html>
├── <head>
│ ├── <meta charset>
│ ├── <meta viewport>
│ └── <title>
└── <body>
├── <h1>
└── <p>
Essa hierarquia é o que o navegador usa para construir o DOM — a estrutura interna que vimos na lição anterior.
A indentação: organizando o código
Repare que no código de exemplo, os elementos dentro de <html>
estão recuados para a direita, e os elementos dentro de <head>
e <body> estão recuados ainda mais. Isso se chama indentação.
<!-- Sem indentação — difícil de ler -->
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Página</title>
</head>
<body>
<h1>Título</h1>
<p>Parágrafo</p>
</body>
</html>
<!-- Com indentação — fácil de ler -->
<!DOCTYPE html>
<html lang="pt-BR">
<head>
<meta charset="UTF-8">
<title>Página</title>
</head>
<body>
<h1>Título</h1>
<p>Parágrafo</p>
</body>
</html>
Os dois códigos produzem exatamente o mesmo resultado no navegador. A indentação não afeta o funcionamento — ela existe apenas para tornar o código legível para humanos.
💡 O VS Code indenta o código automaticamente na maioria das situações. Você também pode selecionar todo o código e pressionar
Shift + Alt + Fpara formatar automaticamente.
Juntando tudo
Veja o documento completo com comentários explicando cada parte:
<!-- Informa ao navegador que este é um documento HTML5 -->
<!DOCTYPE html>
<!-- Elemento raiz da página; lang define o idioma como português do Brasil -->
<html lang="pt-BR">
<!-- Área de configurações — invisível para o usuário -->
<head>
<!-- Define a codificação de caracteres para suportar acentos e símbolos -->
<meta charset="UTF-8">
<!-- Garante que a página se adapte a telas de celular -->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- Título exibido na aba do navegador e nos resultados de busca -->
<title>Minha Primeira Página</title>
</head>
<!-- Área de conteúdo visível — tudo que o usuário vê na tela -->
<body>
<h1>Olá, mundo!</h1>
<p>Este é o meu primeiro parágrafo.</p>
</body>
</html>
Resumindo
| Elemento | Onde fica | Para que serve |
|---|---|---|
<!DOCTYPE html> |
Antes de tudo | Declara que é um documento HTML5 |
<html> |
Envolve tudo | Elemento raiz da página |
lang="pt-BR" |
Dentro de <html> |
Define o idioma da página |
<head> |
Dentro de <html> |
Área de configurações invisíveis |
<meta charset> |
Dentro de <head> |
Define a codificação de caracteres |
<meta viewport> |
Dentro de <head> |
Garante responsividade em mobile |
<title> |
Dentro de <head> |
Título na aba do navegador |
<body> |
Dentro de <html> |
Todo o conteúdo visível da página |