ÍNDICE Porque utilizar tabelas para layout é estupidez: _____ 2 Visão Geral: O que há de bom para mim? __________ 3 Assassinos de sites: tabelas aninhadas e GIFs de espaçamento ________________________________ 4 O problema com o uso de tabelas _______________________ 4 A salvação está à mão _________________________ 5 A solução: CSS e marcação estruturada ____________ 8 Ei, todas estas páginas estão parecidas! ___________ 10 Mas espere, há mais: _________________________________ 12 Bibliografia _________________________________ 14 Porque utilizar tabelas para layout é estupidez: Tabelas existem no HTML por um motivo: Exibir dados tabulados. Mas a utilização de border="0" tornou possível para designers terem uma grade para exibir imagens e textos. Esta é, ainda, a forma predominante em que os designers projetam seus sites com um visual rico, porém, hoje o uso de tabelas está, de fato, interferindo na construção de sites melhores, mais acessíveis, flexíveis e funcionais. Descubra a origem destes problemas, e encontre soluções para criar sites transitivos, ou completamente sem tabelas (tableless). Há algum chefe de vocês aqui na Seybold, assistindo outras palestras nesse exato momento? Vá chamá-los!. Eles são as pessoas que precisam saber como os padrões Web podem salvar o dinheiro de suas empresas.agências de turismo estão ganhando muito dinheiro com roteiros que incluem os lugares onde a trama do livro se desenrola. 2 Visão Geral: O que há de bom para mim? Vamos começar pela questão da autoridade e inspiração dos escritos que compõe o cânon das Escrituras, mais especificamente o cânon do Novo Testamento. Vamos lhe dar alguns motivos para trabalhar com os padrões Web: • suas páginas carregarão mais rápido; • os custos de hospedagem serão reduzidos; • os redesigns dos seus sites serão mais eficientes e mais baratos; • será mais fácil manter a consistência visual entre todos seus sites; • melhores resultados das ferramentas de busca; • o seu site se tornará mais acessível para todos os visualizadores e browsers; • e lhe proporcionará mais competitividade (isto é, estabilidade no mercado) enquanto todo o Mundo começa a usar os padrões. Nos próximos capítulos demonstraremos que formatar seu site utilizando CSS requer uma forma de pensar um pouco diferente que a qual você provavelmente está acostumado. 3 Assassinos de sites: tabelas aninhadas e GIFs de espaçamento No princípio, a internet era principalmente um meio em que os acadêmicos, investigadores e o exército compartilhavam informações. Entretanto, não demorou muito para que os visionários empresariais percebecem que este era um excelente meio para se vender qualquer coisa, de produtos frescos e cachorros quentes até carros usados e equipamentos esportivos. porém, como qualquer mídia "jovem", a internet estava esteticamente cru (e por isso não atraía os consumidores), até david siegel publicar seu livro, um marco, que ofereceu algumas formas de trabalhar as limitações dos browsers existentes e as especificações do w3c, aproximadamente 1997. (estamos falando de netscape 2 e 3, pessoal.) na realidade, estas formas de trabalho eram tão brilhantes, que prevalecem até hoje como o método mais utilizado para se leiautar páginas para a web. O problema com o uso de tabelas • misturam o conteúdo da formatação: 4 o esta mistura deixa os arquivos de seu site desnecessariamente grandes , uma vez que os usuários têm que descarregar estes dados a cada página que visitam; o banda de transferência (quantidade de bytes requisitados do servidor) não é grátis. • elas fazem o redesign de sites de conteúdo extenso ser um trabalho intenso (e caro); • também tornam extremamente difícil (logo caro) manter a consistência visual do site; • páginas baseadas em tabelas são também muito menos acessíveis para usuários com deficiências e para aqueles que usam celulares e PDAs. A salvação está à mão 5 (a) Browsers modernos são muito melhores para renderizar os padrões web, por isso não precisamos mais utilizar estes métodos arcaicos. (b) No lugar de aninhar tabelas dentro de tabelas, e encher celulas vazias com gifs transparentes, nós podemos usar simples marcações HTML30/12/2004 e CSS para formatar belos sites, que são rápidos para carregar, fáceis de redesenhar, e muito mais acessíveis para todos.copiado ao longo dos séculos pelos escribas judeus (...) e o texto de Isaías estava relativamente estabilizado já no século II”. (c) 1QIsab (cópia “b”) – Este manuscrito é datado do século I a.C. e é fragmentário. Contém pedaços de capítulos. É considerado o mais próximo da tradição massorética (que criou os sinais vocálicos na língua hebraica para que esta fosse melhor pronunciada e lida) da mesma do texto da bíblia hebraica. (d) 1QS – Uma espécie de Manual de disciplina datado de 100-75 a.C. (e) 1QM – texto de Guerra ou “manuscrito da Guerra”. (f) 1QH – conhecidos como “Salmos de Ação de Graças”. (g) 1QpHab – é um comentário sobre Habacuc. Cita o texto do profeta Habacuque versículo por versículo. 6 (h) 1QapGen – é um apócrifo do Gênesis escrito em aramaico. 7 A solução: CSS e marcação estruturada Usando marcação estruturada e Cascading Style Sheets em nossas páginas, podemos manter o conteúdo separado da formatação. Com isto temos várias vantagens sobre o uso de tabelas... Redesigns são mais fáceis e mais baratos Removendo os dados de formatação de nossas páginas, refazê-las se torna um trabalho muito menos intenso (e mais barato). Para mudar o layout do site, tudo o que você precisa fazer é alterar a folha de estilo (CSS); você não precisa editar todas as páginas do site novamente. Se quer exemplos, veja o CSS Zen Garden, ou a troca de estilos do site de Eric Meyer. Para aprender mais, veja Alternative Style por Paul Sowden. Banda de transferência não é de graça Utilizar padrões Web reduz o tamanho das suas páginas, pois os usuários não precisarão baixar os dados de formatação a cada página visitada. O CSS que controla o layout fica no cache de seus browsers. Arquivos menores implicam carregamento mais rápido e menos custo de hospedagem. Ei, todas estas páginas estão parecidas! Utilizando os padrões Web torna-se extremamente fácil manter a consistência visual de um site. Todas as páginas usam o mesmo arquivo CSS que configura cores, tamanhos e posições para os textos e demais objetos, deixando-as formatadas da mesma maneira. Isto fortalece sua marca e deixa o seu site muito mais usável. 9 Ei, todas estas páginas estão parecidas! Utilizando os padrões Web torna-se extremamente fácil manter a consistência visual de um site. Todas as páginas usam o mesmo arquivo CSS que configura cores, tamanhos e posições para os textos e demais objetos, deixando-as formatadas da mesma maneira. Isto fortalece sua marca e deixa o seu site muito mais usável. Escreva uma vez, use em qualquer lugar, para qualquer pessoa Os padrões Web tornam nossas páginas muito mais acessíveis para usuários com deficiências e para browsers de celulares e PDAs que acessam a Web. Visitantes que utilizam leitores de tela (e visitantes com conexões lentas) não têm que navegar por incontáveis células de tabelas e espaços para chegar ao conteúdo real de nossas páginas. Em outras palavras, separar o conteúdo da formatação deixa o seu site acessível independente do dispositivo utilizado. O Google é cego Falando de acessibilidade: minimizar a código e usar corretamente as tags de cabeçalho (h1, h2 etc) são métodos 10 que ajudam a melhorar o seu ranking em ferramentas de busca. Reduzir a proporção do código em relação ao conteúdo, usar palavras-chave em suas tags de cabeçalho, e substituir GIFs por texto normal é uma grande ajuda para que o seu site apareça melhor nos resultados das pesquisas. Você ainda pode utilizar tabelas se precisar, apenas não utilize tantas Isto dará aos usuários (e chefes), insistentes e determinados em utilizar a versão 4 dos browsers até a morte, uma aproximação aceitável do que o resto do mundo está vendo. Recapitulando os designs transitivos Use margin e padding no lugar de células extras e GIFs de espaçamento. Use link e @import para os estilos. O primeiro para browsers antigos e o segundo para os modernos. <link href="basic.css" rel="stylesheet" type="text/css"> <style type="text/css" media="screen"><!-@import url(modern.css) screen; --></style> Exemplos reais: • Santa Cruz Montessori School • k10k 11 • Fox Searchlight Pictures Mas espere, há mais: Para mais informação sobre designs de transição, veja o capítulo 1 do Eric Meyer on CSS e também parte do Designing with Web Standards por Jeffrey Zeldman. Layouts com CSS: o futuro está aqui A grande maioria dos usuários de internet de hoje utilizam browsers que têm bom suporte às CSS. Eles têm suas picuinhas, mas depois que você se acostumar, poderá se virar bem. Codificar em CSS é fácil. Até mesmo para um garoto como eu que acha que javascript se parece com praguejar. if(links[x].length > 0);{ for (y=0; y<links[x].length; y++) { Toda regra em CSS tem um seletor e uma declaração. A declaração é composta de uma propriedade e um valor. As propriedades geralmente são duas palavras separadas por um hífen. body {margin:0; padding:0} .related {float:right; width: 15em; margin-left:1em; marginbottom: 1em; color:blue} 12 #footer {color: gray; font-size: 0.6em; line-height: 1.2em; background-color: white; margin: 0} Marcação estrutural: o que você diz com o seu código e o que ele diz Enquanto que escrever CSS é simples, utilizá-la para formatar seus sites requer uma forma de pensar um pouco diferente da que já vinhamos utilizando. No lugar de pensar coisas como "isto vai aqui, e isto vai ali" quando estamos trabalhando o layout de uma página, nós precisamos pensar sobre o tipo de informação dentro da nossa página e a estrutura desta informação. Nós daremos para a manchete a tag <h1>; sub-títulos serão marcados com a tag <h2> etc; e parágrafos serão parágrafos. Isto é conhecido como marcação "estruturada", ou marcação "semântica". Ao invés de colocar o seu conteúdo dentro de tabelas, envolva o seu conteúdo dentro de elementos div. Dê a seu elemento div um id (identificador) ou uma class que descreverá o seu conteúdo e/ou função, no lugar de sua aparência. 13 Bibliografia http://www.plasmadesign.com.br/stupidtables/everything.html 14