Proposta de site
Este guia detalha a prática de desenvolvimento de um website de página única (one-page), baseada no projeto prático "O que eu mais gosto em São Paulo..." apresentado no livro html5 e css3 domine a web do futuro.
1. Objetivos do Projeto
O objetivo principal é criar um site simples, elegante e funcional que compile uma lista de recomendações sobre uma cidade. A prática visa consolidar os fundamentos do desenvolvimento front-end, focando na estruturação de conteúdo com HTML e na apresentação visual com CSS.
2. Escopo Técnico
Para garantir a interoperabilidade e modernidade do projeto, o escopo inclui:
- Estrutura Semântica: Uso de tags do HTML5 para melhor organização e SEO.
- Estilização: Aplicação de conceitos do Box Model (margens, bordas, preenchimentos) e controle de fluxo com
float. - Consistência: Utilização do
Normalize.csspara garantir que o site seja exibido de forma similar em diferentes navegadores. - Responsividade: Embora o exemplo utilize uma largura fixa de 960px, as fontes recomendam a transição para unidades fluídas e Media Queries para suporte a dispositivos móveis.
3. Fases de Desenvolvimento Passo a Passo
Fase 1: Configuração Inicial e Estrutura Básica
Comece criando um arquivo HTML utilizando um template padrão que inclua o doctype do HTML5 e as referências ao Normalize.css e ao prefixfree.min.js.
- Título Principal: Utilize a tag
<h1>para o nome do site, como "O que eu mais gosto em São Paulo...". - Container: Envolva todo o conteúdo em uma
<div class='container'>para limitar a largura e centralizar o site na tela.
A Fase 1, focada na Configuração Inicial e Estrutura Básica, é o ponto de partida para garantir que o site funcione corretamente em diferentes dispositivos e navegadores. Abaixo, detalho o passo a passo para estruturar essa base utilizando as práticas recomendadas nas fontes:
Passo a Passo Detalhado da Fase 1
- Declaração do Doctype e Tag Raiz: Inicie o documento com
<!doctype html>, que no HTML5 é uma instrução simplificada e fácil de lembrar para informar ao navegador como processar o código. Em seguida, abra a tag<html lang='pt-BR'>para definir o idioma do conteúdo. - Configuração do Cabeçalho (
<head>): Dentro do cabeçalho, defina o mapeamento de caracteres com<meta charset="UTF-8">para evitar erros de acentuação. Adicione o título que aparecerá na janela do navegador utilizando a tag<title>, como "O que eu mais gosto em São Paulo...". - Inclusão de Estilos de Base: Referencie o arquivo
normalize.csslogo no início do<head>. O uso deste arquivo é uma prática essencial para alinhar o comportamento dos navegadores em um mesmo patamar de estilo, corrigindo inconsistências de bordas, fontes e campos de formulário. - Simplificação de Tags no HTML5: Ao referenciar arquivos CSS e JavaScript, você pode omitir o atributo
type="text/css"outype="text/javascript", pois no HTML5 o navegador já assume esses tipos por padrão. Além disso, tags como<link>,<meta>e<img>não precisam mais ser fechadas com uma barra ao final (/>), apenas com o sinal de maior (>). - Automação de Prefixos: Ainda no
<head>, inclua o scriptprefixfree.min.js. Essa ferramenta é fundamental para tratar automaticamente os prefixos proprietários (como-webkit-ou-moz-) de propriedades CSS3 que ainda não são padrão em todos os browsers, permitindo que você foque na escrita do código canônico. - Estruturação do Corpo (
<body>): No início do corpo da página, insira o título principal visível utilizando a tag<h1>. Para garantir o controle visual, envolva todo o conteúdo em uma<div class='container'>, que servirá para fixar a largura e centralizar o site na tela através do CSS posteriormente. - Preparação para Interatividade: No final do
<body>, antes da tag de fechamento, adicione a referência aojquery.min.js. Esta biblioteca de JavaScript será útil para facilitar o trabalho com o DOM e finalizar exemplos práticos de interatividade.
Ao completar esses passos, você terá um template rock-solid (sólido como rocha), baseado em boas práticas de compatibilidade e performance, pronto para receber o conteúdo e a estilização específica do seu projeto.
Estrutura da fase 1
Continuando com a Fase 1, a implementação do código HTML inicial estabelece o "esqueleto" e as configurações técnicas necessárias para que o site seja moderno e compatível com diversos navegadores.
Abaixo está o exemplo prático do HTML para esta fase, integrando o template básico com os elementos do site "O que eu mais gosto em São Paulo...".
<!doctype html>
<html lang='pt-BR'>
<head>
<!-- Define a codificação de caracteres para evitar erros em acentos -->
<meta charset="UTF-8">
<!-- Título que aparece na aba do navegador -->
<title>O que eu mais gosto em São Paulo</title>
<!-- O Normalize.css garante que o site seja exibido sem inconsistências entre diferentes browsers -->
<link rel="stylesheet" href="normalize.css">
<!-- O script prefixfree.min.js automatiza a escrita de prefixos de CSS3 -->
<script src="prefixfree.min.js"></script>
</head>
<body>
<!-- Título principal da página -->
<h1>O que eu mais gosto em São Paulo</h1>
<!-- A div 'container' é essencial para fixar a largura (ex: 960px) e centralizar o conteúdo futuramente via CSS -->
<main>
<!-- O conteúdo principal (Fase 2) será inserido aqui -->
<!-- Exemplo: <h2>Passear na Avenida Paulista!</h2> -->
</main>
<!-- O jQuery é carregado ao final do corpo para não atrasar a renderização da página -->
<script src="jquery.min.js"></script>
</body>
</html>
Detalhes Importantes da Estrutura Acima:
- Doctype Simplificado: No HTML5, utiliza-se apenas
<!doctype html>, o que informa ao navegador para processar o código seguindo os padrões atuais sem a necessidade de URLs complexas. - Omissão de Atributos Desnecessários: Seguindo as práticas de "escrever menos e fazer mais", não é necessário informar o atributo
type="text/css"em links de estilo outype="text/javascript"em scripts, pois o HTML5 já assume esses valores por padrão. - Fechamento de Tags: Tags como
<meta>e<link>não precisam mais da barra de fechamento (/>) ao final, sendo aceito apenas o sinal de maior (>). - Uso do Container: A criação da
<div class='container'>logo no início da Fase 1 é estratégica para permitir que, na fase de estilização, possamos usarmargin: 0 auto;para centralizar todo o site na tela do usuário.
Fase 2: Organização do Conteúdo (HTML)
Estruture os locais recomendados utilizando elementos de agrupamento.
- Conteúdo Principal: Cada local deve ter um título secundário (
<h2>), uma breve descrição em parágrafos (<p>) e links (<a>) para referências externas. - Imagens: Adicione fotos de cada lugar usando a tag
<img>, sempre preenchendo o atributoaltpara acessibilidade. - Elementos Secundários: Crie uma barra lateral com uma lista ordenada (
<ol>) de atrações adicionais e um rodapé (<footer>) para informações de autoria.
Fase 3: Estilização e Layout (CSS)
Inicie a formatação visual para dar identidade ao site.
- Tipografia: Defina uma lista de fontes no
body(ex: Lucida Grande, Verdana) e ajuste oline-heightpara 1.6 para melhorar a leitura. - Cores e Fundo: Aplique uma cor ou imagem de fundo com textura no
body. Defina cores específicas para links e utilize o pseudo-seletor:hoverpara criar efeitos interativos quando o mouse passar sobre eles. - Espaçamento (Box Model): Adicione
paddinginterno emargin-bottomaos blocos de conteúdo para que não fiquem colados uns aos outros.
Fase 4: Posicionamento Avançado
Ajuste a disposição dos elementos na página.
- Alinhamento de Imagens: Utilize
float: leftnas imagens para que o texto flua ao lado delas. - Colunas: Posicione o conteúdo principal à esquerda (
float: left) e a barra lateral à direita (float: right), garantindo que a soma de suas larguras não ultrapasse os 960px do container. - Limpeza de Fluxo (Clearfix): Utilize a classe
.clearou a técnica de clearfix para evitar que elementos flutuantes "vazem" para fora de seus containers.
Fase 5: Refatoração para HTML5
Para tornar o código mais semântico e modular, substitua as divs genéricas pelas novas tags do HTML5:
- Substitua os blocos de cada lugar por
<article>. - Substitua a barra lateral por
<aside>. - Utilize
<header>para o título do site e<footer>para o rodapé final.
Ao final dessas fases, você terá um site de página única organizado, com uma separação clara entre estrutura e estilo, seguindo as melhores práticas do desenvolvimento web moderno.