Pular para o conteúdo
murad.guide

Fundamentos da Web /A estrutura do documento

Capítulo 17

Organizar o projeto completo

4 min de leitura 750 palavras 1 gravura

Neste capítulo você vai revisar cinco páginas e separar conteúdo de estilo.

Seu ponto de partida

Estude depois do capítulo 16. O exemplo deste capítulo é 17-organizar-projeto, no pacote que acompanha o volume. Copie a pasta inicio para um diretório de prática e preserve o original. A raiz do exemplo é a referência concluída desta etapa. Sua cópia permite experimentar sem perder a referência.

Abra index.html da cópia com dois cliques. Edite o mesmo arquivo num editor de texto simples. Abrir no disco não publica a página.

Como praticar

Leia a explicação e digite ou confira o código indicado. Mude uma coisa. Antes de conferir, anote sua previsão. Salve, recarregue e compare. Se não acontecer o esperado, investigue o erro antes de avançar. Cada experiência parte dos valores da referência. Depois de conferir, desfaça somente a mudança desse experimento antes de começar a próxima lição. Você pode parar depois de uma lição e retomar mais tarde.

Uma pasta tem papéis claros

O projeto reúne cinco páginas HTML, uma folha principal, imagens e mídia local. Cada etapa é independente; não depende de arquivos do capítulo anterior. A pasta inicio é sua base de prática, e a raiz é a referência.

Mover um recurso exige atualizar quem aponta para ele. Não copie toda a pasta .trabalho para resolver um caminho. Ela contém fontes e conferência, não recursos do aluno.

Faça no seu exemplo

Confira a árvore final.

index.html
palestrantes.html
programacao.html
local.html
inscricao.html
assets/stylesheets/main.css
assets/imagens/
assets/midia/

Mude uma coisa e preveja

Numa cópia, renomeie somente poster.png e atualize o poster do vídeo.

Anote o que você acha que vai acontecer antes de salvar e recarregar.

Recarregue e confira

O vídeo mantém sua imagem inicial quando os dois nomes correspondem.

Se não acontecer

Se usar um caminho absoluto da máquina, a próxima cópia vai falhar. Prefira os caminhos relativos fornecidos.

CSS próprio evita consertos espalhados

A folha compartilhada centraliza a aparência. Classes descrevem funções, como cartao e aviso. Antes de acrescentar uma regra duplicada, confira se uma regra existente atende ao objetivo.

Não acrescente !important para cada conflito. Volte ao seletor e à cascata. Uma folha curta, coerente e compreensível é mais fácil de alterar que uma coleção de remendos.

Faça no seu exemplo

Confira o grupo compartilhado.

header, main, footer { max-width: 64rem; margin-inline: auto; }

Mude uma coisa e preveja

Troque somente o limite para 58rem e abra as cinco páginas.

Anote o que você acha que vai acontecer antes de salvar e recarregar.

Recarregue e confira

Todas compartilham o novo limite.

Se não acontecer

Se uma não acompanhar, confira seu link da folha e a cópia aberta.

Revise conteúdo e consistência

Confira title, h1 e aria-current em cada página. Leia nomes dos links, rótulos e mensagens. A revisão editorial evita que uma cópia de cabeçalho anuncie a página errada.

O evento é fictício. Nenhuma página promete reserva real ou fornece endereço pessoal. A confirmação do formulário permanece explícita sobre a simulação.

Faça no seu exemplo

Abra as cinco páginas em sequência.

Início → Palestrantes → Programação → Local → Inscrição → Início

Mude uma coisa e preveja

Mude somente o title de local.html para Local do evento fictício.

Anote o que você acha que vai acontecer antes de salvar e recarregar.

Recarregue e confira

A aba dessa página muda; as outras mantêm seus próprios títulos.

Se não acontecer

Não substitua todos os titles por um texto genérico. Eles devem ajudar a distinguir as páginas.

Trecho do resultado de referência do capítulo 17

A captura mostra um trecho da referência concluída. Abra e percorra o exemplo para conferir o restante. Experimentos temporários podem produzir outra aparência; restaure os valores indicados antes de comparar.

Atividades para fazer antes das respostas

Use uma nova cópia do exemplo. Tente aplicar o que aprendeu antes de consultar os comentários.

  1. Confira a autonomia da etapa.

  2. Revise o item atual nas cinco páginas.

  3. Encontre e retire uma regra temporária de experimento.

Respostas comentadas

Compare sua explicação e o que realmente aconteceu. Outra solução pode funcionar se cumprir o objetivo e preservar o acesso ao conteúdo.

  1. A cópia completa abre com os recursos de sua própria pasta.

  2. Somente o link correspondente tem aria-current em cada página.

  3. Restaure os valores de referência e conserve somente regras com finalidade.

Quando seguir

Você entende a organização e percorre todas as páginas. Se ainda precisa de ajuda, repita a experiência pequena antes de avançar.

O arquivo completo

Referência do exemplo 17-organizar-projeto, reproduzida aqui para que você possa conferir sem sair da página.

index.html

<!doctype html>
<html lang="pt-BR">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Conferência de Estilos</title>
<link rel="stylesheet" href="assets/stylesheets/main.css">
</head>
<body>
<a class="pular" href="#conteudo">Pular para o conteúdo</a>
<header><h1>Conferência de Estilos</h1><p>Pequenos passos para aprender HTML &amp; CSS.</p><nav aria-label="Principal"><a href="index.html" aria-current="page">Início</a> <a href="palestrantes.html">Palestrantes</a> <a href="programacao.html">Programação</a> <a href="local.html">Local</a> <a href="inscricao.html">Inscrição</a> </nav></header>
<main id="conteudo" tabindex="-1"><section aria-labelledby="sobre"><h2 id="sobre">Sobre o evento</h2><p>Um evento fictício para aprender fazendo.</p></section><p class="aviso">Evento fictício. Não há inscrições reais.</p><section class="destaques" aria-label="Destaques"><article class="cartao"><h2>Aprender</h2><p>Um passo por vez.</p></article><article class="cartao"><h2>Praticar</h2><p>Uma mudança para conferir.</p></article></section><section class="hero" aria-labelledby="participe"><h2 id="participe">Uma ideia por experiência</h2><p>14 de setembro. Recife. Evento fictício.</p></section><section aria-labelledby="beneficios"><h2 id="beneficios">O que você encontra</h2><ul class="beneficios"><li>Explicações curtas</li><li>Exemplos para alterar</li><li>Tempo para conferir</li></ul><h2>Seu percurso de prática</h2><ol><li>Abra a página.</li><li>Mude uma coisa.</li><li>Confira o resultado.</li></ol></section></main>
<footer><p>Conferência fictícia. Exercício local.</p></footer>
</body>
</html>

assets/simulacao.js

const form = document.querySelector('#inscricao');
const button = document.querySelector('#simular');
const status = document.querySelector('#retorno');
button.disabled = false;
form.addEventListener('submit', event => {
  event.preventDefault();
  status.textContent = 'Simulação concluída. Nada foi enviado ou gravado.';
  status.focus();
});
form.addEventListener('reset', () => { status.textContent = ''; });