Descubra como criar layouts modernos usando tabelas, a técnica tableless com DIVs e os novos elementos semânticos do HTML5, com exemplos práticos e boas práticas de SEO.
No início da web, as tabelas eram o recurso principal para dividir a página em áreas distintas. Criava‑se uma grande tabela e cada <td> continha um bloco de conteúdo (menu, artigo, anúncios etc.). Embora funcional, o navegador precisava ler toda a estrutura antes de renderizar, o que gerava atrasos. O código‑exemplo mostra como usar <thead>, <tbody> e <tfoot> para separar cabeçalho, corpo e rodapé, além de colspan e rowspan para mesclar células.
<div> (tableless)
Com a evolução do CSS, passou‑se a usar <div> como contêineres flexíveis. Cada área (menu, artigos, parceiros) recebe um id ou class, permitindo estilizar em lote. Essa técnica, chamada “tableless”, melhora a velocidade de renderização porque o navegador processa os elementos sequencialmente. O exemplo demonstra a estrutura de #header, #menu, #artigos, #parceiros e #footer, com CSS que define larguras, alturas e bordas.
HTML5 introduziu tags como <header>, <nav>, <section>, <article> e <footer>. Elas descrevem a função do conteúdo, facilitando a indexação por buscadores e a acessibilidade. No exemplo, o <header> contém o menu de navegação, <section id="centro"> agrupa três sub‑seções (#menu, #artigos, #parceiros) e <footer> encerra a página. O CSS permanece semelhante ao da versão div, mas a semântica melhora a compreensão da página.
HTML fornece a estrutura, CSS define a apresentação e JavaScript adiciona interatividade. Por exemplo, um menu dropdown pode ser criado com JavaScript que escuta cliques e altera classes CSS. As APIs modernas do HTML5 (Canvas, Geolocation, Drag‑and‑Drop) são acessadas via JavaScript, ampliando as possibilidades de desenvolvimento.
O site da Editora Érica disponibiliza o código‑fonte completo da página inicial, permitindo que o estudante explore a aplicação prática das três técnicas de layout.
As três técnicas – tabelas, div (tableless) e elementos semânticos – produzem o mesmo visual, mas variam em acessibilidade, performance e manutenção. Para iniciantes, recomenda‑se começar com div ou os novos elementos semânticos, pois são mais flexíveis e amigáveis aos motores de busca.
1 Evolução das Técnicas de Criação de Layouts
1.1 Layout com Tabelas
• Uso de <table>, <thead>, <tbody>, <tfoot>
• Mesclagem com colspan/rowspan
• Desvantagens: renderização lenta, má acessibilidade
1.2 Layout com DIV (Tableless)
• Contêineres <div id/class>
• CSS controla posicionamento, largura, altura
• Vantagens: renderização progressiva, manutenção mais fácil
1.3 Layout com Elementos Semânticos HTML5
• Tags: <header>, <nav>, <section>, <article>, <aside>, <footer>
• Melhor semântica, SEO e acessibilidade
• Estrutura similar ao exemplo de DIV, porém com significado
2 Combinação HTML, CSS e JavaScript
• HTML = estrutura
• CSS = estilo e layout
• JavaScript = interatividade e APIs HTML5
3 Projeto Exemplo – Editora Érica
• Download completo da página inicial
• Exercícios práticos
4 Resumo Final
• Três técnicas produzem o mesmo visual
• Recomenda‑se iniciar com DIV ou semântica HTML5
• Conhecimento de CSS e JS é indispensável
Resposta correta: B) O navegador renderiza a página somente após ler toda a estrutura da tabela.
Essa característica gera atraso na exibição, sendo a principal desvantagem citada no conteúdo.
<div>, assinale a alternativa correta.
Resposta correta: A) Permite que o navegador renderize o conteúdo à medida que os <div> são interpretados.
Essa característica acelera a exibição e é a principal vantagem da técnica tableless.
Resposta correta: C) <section> pode substituir <nav> para menus de navegação.
Embora ambos agrupem conteúdo, <nav> tem significado específico de navegação, enquanto <section> é genérica.
#menu { width: 200px; float: left; }
#artigos { width: 648px; float: left; }
#parceiros { width: 150px; float: left; }
Qual o efeito visual esperado ao aplicar esse CSS ao HTML que contém as três divs acima?
Resposta correta: B) As áreas #menu e #parceiros ficarão ao lado de #artigos, formando três colunas alinhadas horizontalmente.
O uso de float:left em cada div faz com que elas se alinhem lado a lado, respeitando as larguras definidas.