<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Boas práticas de Desenvolvimento com Padrões Web &#187; desenvolvimento</title>
	<atom:link href="http://www.tableless.com.br/tag/desenvolvimento/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tableless.com.br</link>
	<description>XHTML e CSS com farinha e pimenta</description>
	<lastBuildDate>Mon, 08 Mar 2010 14:07:07 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ah, o maravilhoso mundo real</title>
		<link>http://www.tableless.com.br/ah-o-maravilhoso-mundo-real</link>
		<comments>http://www.tableless.com.br/ah-o-maravilhoso-mundo-real#comments</comments>
		<pubDate>Thu, 10 Sep 2009 21:03:31 +0000</pubDate>
		<dc:creator>Elcio Ferreira</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML/XHTML]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[CSS3]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[Semântica]]></category>
		<category><![CDATA[tableless]]></category>
		<category><![CDATA[tableless.com.br]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://www.tableless.com.br/?p=1601</guid>
		<description><![CDATA[O que é mais importante, RDF ou bordas arredondadas? O novo formato de especificações modulares do W3C vai ajudar os desenvolvedores, agilizando os releases de navegador, ou vai tornar nossa vida uma bagunça?]]></description>
			<content:encoded><![CDATA[<p>O Diego publicou, há mais de uma semana, um <a href="http://www.tableless.com.br/se-prepare-para-a-revolucao">artigo sobre o impacto da mudança de estratégia do W3C</a> em relação ao ciclo de vida de seus padrões. O artigo gerou algumas opiniões contrárias nos comentários, em relação ao fato de ele ter dito que bordas arredondadas são mais importantes que a web semântica e em relação à estratégia de especificações modulares do W3C. Vou compartilhar minha opinião sobre os dois pontos.</p>
<p>Em primeiro lugar, é importante distinguir o ideal daquilo que é possível fazer. Li um bocado sobre RDF e ontologias há uns dez anos. Li &#8220;A Revolução Inacabada&#8221;, vi o RSS nascer e se tornar popular, vi as primeiras aplicações entenderem o formato. RDF falhou. Dez anos se passaram e continuamos escrevendo HTML para ser lido por navegadores e só. Há poucos exemplos de aplicações semânticas na vida real, e a maioria seria desenvolvida de uma forma ou de outra.</p>
<p>Há muita gente, por exemplo, definindo seu próprio padrão de XML para trocar dados com sistemas parceiros. Quantos desses estão usando RDF, com uma ontologia interpretada automaticamente por sistemas que &#8220;descobrem&#8221; os serviços um do outro? Ou seja, não há novidades nisso nos últimos dez anos.</p>
<p>Escrever HTML bom é importante, porque vai ajudar o Google a indexar seu site e vai facilitar a vida de quem tentar HTML parsing nele. Mas, seja sincero, você tem mesmo esperanças de que alguém vá lê-lo como XML? Vê alguma vantagem real em validar seu código como XHTML, além de provar a si próprio que fez tudo direito? E onde está a promessa dos microformats? Microformats só fazem diferença se forem usados por muita gente. Ninguém vai fazer um parser de um formato usado em apenas um site. Você consegue citar, de cabeça, cinco sites que usem microformats e não foram feitos por você? Ah, claro, não vale incluir na lista o microformats.org.</p>
<p>Nem RSS é um bom exemplo de aplicação de semântica XML. Existem pelo menos dois formatos populares do padrão, além do padrão Atom, que serve para a mesma coisa. E não sei de nenhum leitor de RSS de sucesso que faça parsing dos feeds como XML. O que todos fazem é ler e interpretar a string. É isso mesmo que você entendeu, quase tão bom quanto um CSV! Outro exemplo digno de nota é o SOAP, que foi criado para fornecer aos webservices a capacidade de &#8220;autodescoberta&#8221;. Você conhece alguém que use isso de verdade? Já viu algum robô que varre a web em busca de serviços e entende sozinho como usá-los? SOAP só tem a vantagem de oferecer tooltips para ajudar os programadores .Net que usam Visual Studio. Enquanto isso, lá fora, XMLRPC e REST (com JSON) estão mudando o mundo.</p>
<p>Por que essas tecnologias falharam, embora pareçam todas boas idéias? Meu palpite é que elas exigiam um raciocínio de longo prazo, um tipo de aposta, que é muito difícil de conseguir. Embora XHTML, Microformats ou SOAP sejam idéias muito boas, aplicá-las em seu site só vai ter valor se muito mais gente o fizer. Se você aplicar o formato sozinho vai perder seu tempo.</p>
<p>O que é muito diferente de, por exemplo, deixar de usar tabelas para layout, escrever bom HTML ou usar jQuery. Essas coisas lhe devolvem um benefício imediato. Se deixar de usar tabelas para layout vai ter um site mais leve e vai perder muito menos tempo quando tiver que mudar o layout, se escrever HTML bom vai ter menos trabalho para escrever CSS, para fazer o CSS mobile e o de impressão, e se usar jQuery vai escrever javascript em um terço do tempo.</p>
<p>Note que esses três exemplos também tiram benefícios do fato de muita gente estar usando. Há muitos bons lugares para se aprender HTML e CSS, há muitos sistemas Open Source que já trabalham gerando código bom e os buscadores entendem a semântica do bom HTML. Mas você não depende desses benefícios para tomar a decisão de uso. Quando começamos, há dez anos, a fazer layouts tableless, não aparecíamos melhor no Google e praticamente não havia sistemas gerando HTML direito. Mas o fizemos assim mesmo porque os benefícios imediatos compensavam o esforço.</p>
<p>É por isso que eu temo que nunca teremos uma web semântica de verdade, e estamos condenados a fazer HTML parsing para sempre.</p>
<p>Há exceções. RSS, por exemplo. RSS é uma sombra do que poderia, mas é um padrão de sucesso, amplamente adotado. E não pode ser explicado com minha teoria do benefício individual imediato. Se você estiver usando RSS sozinho no mundo, não terá nenhum benefício. Talvez o sucesso do RSS se deva ao fato de precisar de uma pequena rede de usuários para oferecer um grande benefício.</p>
<p>Você já se perguntou como foram vendidos os primeiros aparelhos de FAX? Ter um FAX só faz sentido se mais gente tiver. Foram vendidos aos pares. As empresas o compravam para trocar documentos entre a matriz e as filiais. O fato de poder trocar documentos com o resto do mundo era, no início, um &#8220;benefício adicional&#8221;. Se você precisa trocar conteúdo com um site parceiro e vocês forem os únicos usuários de RSS no mundo, terá valido a pena. Conforme a comunidade de usuários aumentava, o valor de ter RSS crescia. Muita gente começou a usar Bloglines e todo mundo queria entrar na festa.</p>
<p>Há alguns anos eu percorri o país com o pessoal da Locaweb comparando o modelo de adoção do RSS com o que eu imaginava que seriam os microformats. Eu estava errado. Pense um segundo no formato de reviews dos microformats. Qual o real benefício de usá-lo? Há alguma aplicação indispensável, onde você realmente quer estar, baseada em hReview? Para que você vai perder seu tempo?</p>
<p>Será que não estamos resolvendo o problema errado? Quando o Diego diz que bordas arredondadas são mais importantes que RDF, será que ele não tem razão? Para meus clientes, hoje, bordas arredondadas com CSS significam um site mais rápido, mais barato (menos tempo gasto recortando imagens) e, para os sites muito visitados, economia de banda. É uma diferença pequena, mas é uma vantagem. E RDF? Além de oferecer RSS, que nem vai ser lido como XML, o que eu posso fazer de real hoje com RDF para meus clientes?</p>
<p>Desculpe se meu raciocínio parece mesquinho. Ele é. Estou tentando ser realista. Uma das principais influências sobre as decisões humanas é a inércia, e não acredito que o mundo vá, num futuro próximo, adotar de maneira revolucionária o RDF ou mesmo o XHTML. Ainda acho essas idéias fantásticas, só não sei se são possíveis.</p>
<p>O realismo também me faz crer que a nova estratégia de especificações modulares do W3C é uma coisa boa. Sofremos décadas com implementações parciais do HTML 4 e do CSS 2. Agora vamos assumir a realidade inevitável. Os desenvolvedores de navegador se sentirão mais à vontade para dizer a você o que funciona ou não. E não precisamos esperar anos para a definição de um padrão. Podemos usar os recursos com os quais o consórcio já concordou hoje. Leva mesmo alguns anos para o W3C bater o martelo sobre determinado padrão, e as especificações modulares representam um ciclo de releases muito mais dinâmico.</p>
<p>Já temos um acordo sobre CSS Transform, bordas arredondadas, múltiplos backgrounds, repetição no DOM, validadores de formulários, SVG, DOM Storage, querySelectors e uma série de outros recursos legais. Por que esperar até a próxima Olimpíada para dizer aos desenvolvedores de browsers: &#8220;Ok, pessoal, fechamos tudo, HTML 5 e CSS 3 já são padrões, podem implementar&#8221;? De qualquer maneira, a adoção modular das especificações do W3C é inevitável. Embora a especificação tenha saído inteira, a adoção foi modular no HTML 3, no HTML 4, no CSS 2. Sabendo que não vai ser diferente mesmo, não é melhor que tenhamos bonitas tabelas de compatibilidade entre o que existe e o que cada navegador suporta?</p>
<p>Dá uma olhada na <a href="http://www.w3.org/Style/CSS/current-work">lista de módulos do CSS3</a>. Você não quer esperar isso tudo ficar pronto para ter bordas arredondadas.<br />
<h3> </h3>
<ul class="related_post">
<li><a href="http://www.tableless.com.br/o-caminho-suave-para-o-tableless" title="O Caminho Suave para o Tableless">O Caminho Suave para o Tableless</a></li>
<li><a href="http://www.tableless.com.br/o-que-etableless" title="O que é Tableless?">O que é Tableless?</a></li>
<li><a href="http://www.tableless.com.br/sobre-internet-explorer-para-mobile-breve-impressao" title="Sobre Internet Explorer para Mobile &#8211; Breve impressão">Sobre Internet Explorer para Mobile &#8211; Breve impressão</a></li>
<li><a href="http://www.tableless.com.br/nao-otimize-seu-codigo" title="Não &#8220;otimize&#8221; seu código">Não &#8220;otimize&#8221; seu código</a></li>
<li><a href="http://www.tableless.com.br/o-que-sao-media-types" title="O que são Media Types do CSS?">O que são Media Types do CSS?</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tableless.com.br/ah-o-maravilhoso-mundo-real/feed</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>Implementar XHTML/CSS é grátis</title>
		<link>http://www.tableless.com.br/implementar-xhtmlcss-e-gratis</link>
		<comments>http://www.tableless.com.br/implementar-xhtmlcss-e-gratis#comments</comments>
		<pubDate>Mon, 08 Dec 2008 09:00:12 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[desenvolvimento web]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[tableless]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.tableless.com.br/?p=1042</guid>
		<description><![CDATA[Você pode ser diferente, mas isso só depende de você. ]]></description>
			<content:encoded><![CDATA[<p>Muita gente conhece a história do Tableless. Eu iniciei o Tableless quando estava aprendendo e me aprofundando nos Padrões Web. Meus estudos consistiam em dois momentos: ler e aplicar. Eu lia muito material de fora – quase não haviam fontes sobre Padrões Web aqui no Brasil &#8211; e depois tentava colocar na prática tudo aquilo que eu havia estudado.<br />
<span id="more-1042"></span><br />
No começo isso tudo foi muito fácil. Mas chegou uma hora que eu precisava fazer um layout inteiro. Eu não podia aplicar meus estudos nos layouts de clientes e também não tinha tempo para desenhar um layout modelo.<br />
Por isso tive uma idéia: a maioria dos grandes sites ainda não eram desenvolvidos com Padrões. Tinham códigos horríveis e mal tratados. Pensei então em pegar estes grandes sites e reescrevê-los utilizando XHTML e CSS. Despreocupadamente eu fazia uma versão da home do site utilizando XHTML e CSS. Tentando aplicar os principios de semântica, tentando diminuir cada vez mais o código e deixando apenas o necessário. Quando percebi já tinha &#8220;convertido&#8221; sites da Microsoft, IBM, Apple, HP, Nokia, Samsung, etc&#8230; E o resto da história vocês já sabem.</p>
<p>Essa minha iniciativa me gerou um conhecimento terrível sobre o assunto. Eu sabia muito bem o que funcionava e o que deixava de funcionar em diversos tipos de layouts. Eu descobri que TUDO é possível com CSS, em uma época que todo mundo falava que ele era limitado.<br />
A maior parte dos problemas que eu enfrentei de compatibilidades de browsers em layouts em projetos de clientes, eu já tinha solucionado nos layouts que implementei nos estudos. E isso foi ótimo. Eu me valorizei como profissional, e depois até me chamavam de especialista&#8230; Veja só que honra. Tudo isso, porque eu não  fiquei de nhê nhê nhê como alguns por aí.</p>
<p>Como <a title="Programar é de graça" href="http://marcogomes.com/blog/2008/campanha-programar-e-gratis">programar</a>, implementar  XHTML/CSS também é de graça! Não tem desculpa.<br />
Não há nada que te impeça de sentar o bundão na cadeira e escrever código. Nada.<br />
Mas aí você pode dar a desculpa de: &#8220;- Naquele tempo nenhum site era escrito nos padrões, hoje todos são Tableless!&#8221; E eu digo: &#8220;- E daí?&#8221;.<br />
Será que são escritos de forma semântica? Será que não tem muito código? Não há solução melhor?</p>
<p>A minha revolta aqui é contra aqueles profissionais que não fazem questão de aprender mais. Que simplesmente fazem apenas o que mandam e não tem o desejo de mudar o mundo em nenhum sentido.<br />
<h3> </h3>
<ul class="related_post">
<li><a href="http://www.tableless.com.br/ah-o-maravilhoso-mundo-real" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li>
<li><a href="http://www.tableless.com.br/nao-otimize-seu-codigo" title="Não &#8220;otimize&#8221; seu código">Não &#8220;otimize&#8221; seu código</a></li>
<li><a href="http://www.tableless.com.br/formulario-basico-em-8-minutos" title="Formulário Básico em 8 minutos &#8211; Tableless form">Formulário Básico em 8 minutos &#8211; Tableless form</a></li>
<li><a href="http://www.tableless.com.br/informacao-e-formatacao-as-duas-camadas-de-desenvolvimento-web" title="Informação e Formatação; As duas camadas de desenvolvimento web">Informação e Formatação; As duas camadas de desenvolvimento web</a></li>
<li><a href="http://www.tableless.com.br/fiat-uno-e-peugeot-206" title="Fiat Uno e Peugeot 206">Fiat Uno e Peugeot 206</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tableless.com.br/implementar-xhtmlcss-e-gratis/feed</wfw:commentRss>
		<slash:comments>52</slash:comments>
		</item>
		<item>
		<title>Modulando o CSS</title>
		<link>http://www.tableless.com.br/modulando-o-css</link>
		<comments>http://www.tableless.com.br/modulando-o-css#comments</comments>
		<pubDate>Wed, 12 Nov 2008 09:00:34 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[tableless]]></category>

		<guid isPermaLink="false">http://www.tableless.com.br/?p=1031</guid>
		<description><![CDATA[As vezes não é inteligente fazer o código CSS todo em apenas um arquivo CSS. É aí que entra a modularização do CSS. ]]></description>
			<content:encoded><![CDATA[<p>Quando trabalhamos com Padrões Web, trabalhamos com três camadas principais: Informação, formatação e comportamento.<br />
A informação seria controlada pelo <strong>HTML</strong>. Ele exibiria a informação na tela com significado.<br />
O <strong>CSS</strong> manipularia a formatação desses elementos para que ficassem belos e controlaria suas posições na tela.<br />
E o <strong>Javascript / Ajax</strong> cuidaria do comportamento destes elementos.<br />
<span id="more-1031"></span><br />
Vamos nos focar um bocado na segunda camada, o CSS. O CSS é uma linguagem de formatação é extremamente flexível.<br />
O CSS, por ser uma linguagem com uma sintaxe fácil, muita gente coloca a mão durante o processo de desenvolvimento. E como seu código só tende a crescer, temos que ter um cuidado especial na organização dos arquivos.</p>
<p>Há várias maneiras de organizar os arquivos CSS de um site. Há sites que não precisarão de vários arquivos, bastando apenas um. Para estes devemos apenas ter cuidado com o código. Deixando-o simples e legível. Sempre tomando cuidado com a quantidade de linhas e código desnecessário. A estrutura seria mais ou menos essa:</p>
<p><a href="http://www.tableless.com.br/wp-content/uploads/2008/11/umcss.jpg"><img class="alignnone size-full wp-image-1035" title="Um CSS para todo o site" src="http://www.tableless.com.br/wp-content/uploads/2008/11/umcss.jpg" alt="" width="499" height="414" /></a></p>
<p>Grandes portais e sites com uma visitação extrema, podem querer otimizar esse código. Isso é considerável apenas para estas excessões. O preço da banda é alto e qualquer 1Kb que economizarem será um caminhão de dinheiro que economizarão. Para sites pequenos, e até mesmo alguns sites de médio porte, na minha opinião, não é necessário haver uma &#8220;<a href="http://www.tableless.com.br/nao-otimize-seu-codigo">otimização de código</a>&#8220;.</p>
<p>Se você perceber que as páginas são muito diferentes uma das outras e que o código está aumentando descontroladamente, é muito aconselhável você dividir o código CSS para cada padrão de página. Isso ajuda a controlar o tamanho do código e permite que você modifique uma parte do site sem interferir em outras páginas.</p>
<p><a href="http://www.tableless.com.br/wp-content/uploads/2008/11/umcss-padrao.jpg"><img class="alignnone size-full wp-image-1034" title="Um arquivo para cada padrão" src="http://www.tableless.com.br/wp-content/uploads/2008/11/umcss-padrao.jpg" alt="" width="499" height="414" /></a></p>
<p>Essa opção é ótima para um site que tenha várias seções e cada seção tem um design diferente. Há um inconveniente: o código dentro do HEAD pode ficar enorme com tantas tags de LINK importando os arquivos de formatação. Para mudar isso, você pode fazer duas coisas: a primeira é fazer um arquivo CSS que importe todos os outros arquivos e linkar no HEAD apenas este arquivo.</p>
<p><a href="http://www.tableless.com.br/wp-content/uploads/2008/11/importando-todos.jpg"><img class="alignnone size-full wp-image-1033" title="Um arquivo CSS importando vários" src="http://www.tableless.com.br/wp-content/uploads/2008/11/importando-todos.jpg" alt="" width="500" height="412" /></a></p>
<p>Com essa primeira opção, o browser ainda carregará todos os arquivos CSS de uma vez. Pode ser que o carregamento fique pesado.<br />
Por isso, há uma segunda opção que é conversar com seu programador para que ele faça uma mágica onde o site carregue apenas o arquivo CSS relativo àquela página. Quando visitamos a página interna, não é necessário carregar o arquivo CSS da HOME, por exemplo. Essa mágica previniria isso.</p>
<p>Outras pessoas preferem separar todo o código CSS em dois arquivos. Um arquivo conterá apenas informações de cor e fonte. E no outro arquivo haverá apenas informações sobre a estrutura do site: largura, altura, tamanho, margin, padding, position, float, etc.<br />
Essa maneira é ótima para caso você quiser dar ao usuário opções de cores. O programador pode fazer um javascript maneiro que permita o usuário clicar e mudar a cor. O designer prepara vários CSS com regras de cores diferentes. A estrutura pode continuar a mesma, mas a paleta de cores muda. A mesma coisa pode-se fazer com a estrutura. A cor continua, mas a estrutura pode ser alterada de acordo com a opção do usuário.</p>
<p><a href="http://www.tableless.com.br/wp-content/uploads/2008/11/estrutura-cor.jpg"><img class="alignnone size-full wp-image-1032" title="Um css para estrutura e outro para cor" src="http://www.tableless.com.br/wp-content/uploads/2008/11/estrutura-cor.jpg" alt="" width="500" height="412" /></a></p>
<p>Essas seriam as formas mais comuns de organizar seu CSS. Perca um bocado de tempo planejando essa estratégia. Se o site é muito grande, esse tipo de planejamento prévio pode salvar o projeto. Vale a pena a equipe definir padrões desenvolvimento. O CSS é um dos fatores definitivos para manutenção, velocidade e compatibilidade do site. Um CSS fora de controle é um pesadelo que você não quer ter.<br />
<h3> </h3>
<ul class="related_post">
<li><a href="http://www.tableless.com.br/ah-o-maravilhoso-mundo-real" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li>
<li><a href="http://www.tableless.com.br/implementar-xhtmlcss-e-gratis" title="Implementar XHTML/CSS é grátis">Implementar XHTML/CSS é grátis</a></li>
<li><a href="http://www.tableless.com.br/nao-otimize-seu-codigo" title="Não &#8220;otimize&#8221; seu código">Não &#8220;otimize&#8221; seu código</a></li>
<li><a href="http://www.tableless.com.br/tabelas-semanticas" title="Tabelas semânticas">Tabelas semânticas</a></li>
<li><a href="http://www.tableless.com.br/propriedade-float-do-css" title="Propriedade Float do CSS">Propriedade Float do CSS</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tableless.com.br/modulando-o-css/feed</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Não &#8220;otimize&#8221; seu código</title>
		<link>http://www.tableless.com.br/nao-otimize-seu-codigo</link>
		<comments>http://www.tableless.com.br/nao-otimize-seu-codigo#comments</comments>
		<pubDate>Sun, 09 Nov 2008 03:42:20 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[codigo]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[Semântica]]></category>
		<category><![CDATA[tableless]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.tableless.com.br/?p=1029</guid>
		<description><![CDATA[Quando fazíamos sites com tabelas, o grande problema era a quantidade de código que escrevíamos. Naquele tempo – 1996, 97, 98 – tínhamos outros pontos que precisavam de uma atenção maior. A conexão era lerda para todo mundo e isso dificultava um bocado as coisas. Por isso, fazer um site pesado era fora de cogitação. [...]]]></description>
			<content:encoded><![CDATA[<p>Quando fazíamos sites com tabelas, o grande problema era a quantidade de código que escrevíamos. Naquele tempo – 1996, 97, 98 – tínhamos outros pontos que precisavam de uma atenção maior. A conexão era lerda para todo mundo e isso dificultava um bocado as coisas. Por isso, fazer um site pesado era fora de cogitação. Ficávamos “mendigando” cada byte para que o site ficasse milésimos de segundo mais rápido.<span id="more-1029"></span></p>
<p>O código era o grande problema. A quantidade de código interferia diretamente na performance do site. E isso fez com que os desenvolvedores encontrassem saídas não muito agradáveis.</p>
<p>Era comum fazer códigos como o de baixo:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table&gt;
 &lt;tr&gt;
   &lt;th&gt;Produto&lt;/th&gt;
   &lt;th&gt;Preço&lt;/th&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
   &lt;td&gt;Tênis&lt;/td&gt;
   &lt;td&gt;R$230&lt;/td&gt;
 &lt;/tr&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<p>Se transformarem em verdadeiros monstros:</p>

<div class="wp_syntax"><div class="code"><pre class="1" style="font-family:monospace;">&lt;table&gt;&lt;tr&gt;&lt;th&gt;Produto&lt;/th&gt;&lt;th&gt;Preço&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Tênis&lt;/td&gt;&lt;td&gt;R$230&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</pre></div></div>

<p>Isso tudo para economizar alguns bytes, que dependendo do site, significavam teras e teras de banda por mês. Naquele tempo, fazer isso era totalmente justificável. Precisávamos de alguma forma diminuir esse código para que o site ficasse mais rápido para o usuário e as requisições não sobrecarregassem o servidor.</p>
<p>Hoje isso é totalmente dispensável.</p>
<p>Aprendemos a utilizar o CSS e sabemos escrever HTML semântico.<br />
A utilização dos Padrões trazem uma série de vantagens, e uma grande parte dessas vantagens são por causa da diminuição do código. Com o desenvolvimento de camadas e principalmente por causa do uso do CSS, não precisamos mais “otimizar” o código.</p>
<p>Mas parece que os desenvolvedores gostam de coisas complicadas. Esse mal costume de otimização de código ainda existe, e hoje querem otimizar o CSS. Eu acho totalmente inútil. O CSS foi feito para controlar o visual do site inteiro. Ele tirou a responsabilidade de formatação que colocávamos no HTML. Seu trabalho é exclusivamente esse: controlar o visual e diagramação do site.<br />
É normal ele ficar grande, enorme, bizarro! Sim, haverão alguns casos que o tamanho superará mais de 1000, 2000, 3000, 4000 linhas.<br />
Dá para evitar? Claro que dá! Pense simples. <a href=”http://www.tableless.com.br/modulando-o-css” title=”Modulação de CSS”>Module os arquivos</a>. Faça um planejamento. Mas NUNCA faça com que um CSS escrito assim:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">div <span style="color: #00AA00;">&#123;</span>
 <span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span> <span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">border</span><span style="color: #00AA00;">:</span> <span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#CCC</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">width</span><span style="color: #00AA00;">:</span> <span style="color: #933;">485px</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">height</span><span style="color: #00AA00;">:</span> <span style="color: #933;">37px</span><span style="color: #00AA00;">;</span>
 <span style="color: #000000; font-weight: bold;">background</span><span style="color: #00AA00;">:</span> <span style="color: #cc00cc;">#EEE</span><span style="color: #00AA00;">;</span>
<span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Fique assim:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="css" style="font-family:monospace;">div<span style="color: #00AA00;">&#123;</span><span style="color: #000000; font-weight: bold;">padding</span><span style="color: #00AA00;">:</span><span style="color: #933;">10px</span><span style="color: #00AA00;">;</span>border<span style="color: #00AA00;">:</span><span style="color: #933;">1px</span> <span style="color: #993333;">solid</span> <span style="color: #cc00cc;">#CCC</span><span style="color: #00AA00;">;</span>width<span style="color: #00AA00;">:</span><span style="color: #933;">485px</span><span style="color: #00AA00;">;</span>height<span style="color: #00AA00;">:</span><span style="color: #933;">37px</span><span style="color: #00AA00;">;</span>background<span style="color: #00AA00;">:</span><span style="color: #cc00cc;">#EEE</span><span style="color: #00AA00;">&#125;</span></pre></td></tr></table></div>

<p>Tenha dó do seu próximo e tenha dó de você mesmo.</p>
<p>Se você escreve o código de acordo com os Padrões, já economizou código suficiente. Não prejudique a manutenção do site por conta dessa neura. Escreva código legível!</p>
<p>Há outro ponto que devemos levar em consideração: imagine que o site pese 40Kb. Estes 40Kb são compostos por 20Kb de CSS e 20Kb de HTML. O CSS tem uma característica interessante: ele é cacheado pelo browser quando visitante entra no site.<br />
Na primeira visita do usuário ele baixará 40Kb de uma vez. Já na segunda visita ele baixará apenas 20Kb relativos ao HTML. Ele não precisará baixar os 20Kb de CSS porque o arquivo já está cacheado pelo browser.</p>
<p>Não “otimize” seu código CSS, nem seu código HTML. Faça apenas com Padrões Web e siga categoricamente a semântica. É a melhor otimização que você pode conseguir.</p>
<p>O Leonardo Caineli <a href="”http://leonardocaineli.com.br/dicas-para-otimizar-seu-css/”">escreveu um artigo sobre isso</a>. Claro, discordo da opinião dele.</p>
<p><strong>[update]</strong>Depois do post o pessoal chamou a atenção para essa prática em empresas grandes. Notei que no post eu não falei nada sobre isso. Sim, concordo que essa prática, só nessa hipótese, é totalmente considerável.</p>
<p>Quando treinei a primeira equipe do Terra &#8211; da época do site laranjão, lembra-se? &#8211; a primeira coisa que eles fizeram foi converter a home, e eles ainda sim queriam colocar todo o CSS em apenas uma linha. </p>
<p>Realmente 1Kb multiplicado por milhões é coisa para caramba e não há banda que agüente. Por isso, é totalmente aceitável que sites com um porte muito grande, &#8220;otimizem&#8221; seu código. <strong>[/update]</strong><br />
<h3> </h3>
<ul class="related_post">
<li><a href="http://www.tableless.com.br/ah-o-maravilhoso-mundo-real" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li>
<li><a href="http://www.tableless.com.br/o-caminho-suave-para-o-tableless" title="O Caminho Suave para o Tableless">O Caminho Suave para o Tableless</a></li>
<li><a href="http://www.tableless.com.br/implementar-xhtmlcss-e-gratis" title="Implementar XHTML/CSS é grátis">Implementar XHTML/CSS é grátis</a></li>
<li><a href="http://www.tableless.com.br/tabelas-semanticas" title="Tabelas semânticas">Tabelas semânticas</a></li>
<li><a href="http://www.tableless.com.br/informacao-e-formatacao-as-duas-camadas-de-desenvolvimento-web" title="Informação e Formatação; As duas camadas de desenvolvimento web">Informação e Formatação; As duas camadas de desenvolvimento web</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tableless.com.br/nao-otimize-seu-codigo/feed</wfw:commentRss>
		<slash:comments>109</slash:comments>
		</item>
		<item>
		<title>Tabelas semânticas</title>
		<link>http://www.tableless.com.br/tabelas-semanticas</link>
		<comments>http://www.tableless.com.br/tabelas-semanticas#comments</comments>
		<pubDate>Mon, 27 Oct 2008 09:00:15 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML/XHTML]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[padroes web]]></category>
		<category><![CDATA[Semântica]]></category>
		<category><![CDATA[tabelas]]></category>
		<category><![CDATA[tableless]]></category>

		<guid isPermaLink="false">http://www.tableless.com.br/?p=1028</guid>
		<description><![CDATA[Você já deve saber que o desenvolvimento utilizando Padrões Web preza pela Semântica no código. Todo código que você escrever deve dar algum significado ao conteúdo. E toda tag sem sua função específica e te ajuda a formar um código mais esperto e legível.
Alguns elementos por dependerem de várias tags para ter um funcionamento pleno, [...]]]></description>
			<content:encoded><![CDATA[<p>Você já deve saber que o desenvolvimento utilizando Padrões Web preza pela Semântica no código. Todo código que você escrever deve dar algum significado ao conteúdo. E toda tag sem sua função específica e te ajuda a formar um código mais esperto e legível.<br />
Alguns elementos por dependerem de várias tags para ter um funcionamento pleno, acabam sofrendo com o desinteresse dos desenvolvedores em entender melhor os diversos objetos que compoem um determinado elemento. Um caso bastante comum, <a href="http://www.tableless.com.br/formulario-basico-em-8-minutos">além dos Formulários</a>, é a formação das TABLES.<span id="more-1028"></span><br />
Normalmente, escrevemos uma tabela mais ou menos assim:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table&gt;
&lt;tr&gt;
&lt;td&gt;Produto&lt;/td&gt;
&lt;td&gt;Descrição&lt;/td&gt;
&lt;td&gt;Valor&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tênis&lt;/td&gt;
&lt;td&gt;Tênis com amortecedor, tecido vermelho com cadarço preto.&lt;/td&gt;
&lt;td&gt;R$350,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Camiseta&lt;/td&gt;
&lt;td&gt;Tamanho GG, cor preta e uma estampa nas costas.&lt;/td&gt;
&lt;td&gt;R$55,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calça&lt;/td&gt;
&lt;td&gt;Tecido Jeans, azul claro, com botão duplo.&lt;/td&gt;
&lt;td&gt;R$105,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<p>Para nós que enxergamos bem e conseguimos fazer uma breve interpretação de texto, conseguimos entender na maioria das vezes qual o assunto das tabelas na página.</p>
<p>Mas e o Google? E o leitor de tela do cego?</p>
<p>Por isso, a tabela tem algumas tags que ajudam o desenvolvedor a dar mais informação sobre o conteúdo daquela tabela.</p>
<p>Há algumas tags que iremos acrescentar em nossa tabela para dar essa informação extra ao visitante, seja ele ser humano ou robô.</p>
<h3>SUMMARY &#8211; Dizendo do que se trata a tabela</h3>
<p>O atributo <strong>summary</strong> é colocado na tag TABLE. Ela serve para indicar do que se trata aquela tabela, dizendo sua utilidade e que tipo de informação está descrevendo.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table summary=&quot;Lista de produtos em promoção&quot;&gt;</pre></td></tr></table></div>

<h3>TH &#8211; Table Header</h3>
<p>Considerando o código que colocamos mais acima, há os títulos de células PRODUTO, DESCRIÇÃO e VALOR. Esses títulos, devem ser destacados como título, não apenas modificando seu visual pelo CSS, mas também destacando-os pelo código. Para fazermos isso, iremos utizar a tag TH.</p>
<p>Essa tag irá indicar que tais células são títulos.  O nosso código ficará assim:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table summary=&quot;Lista de produtos em promoção&quot;&gt;
&lt;tr&gt;
&lt;th&gt;Produto&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;th&gt;Valor&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tênis&lt;/td&gt;
&lt;td&gt;Tênis com amortecedor, tecido vermelho com cadarço preto.&lt;/td&gt;
&lt;td&gt;R$350,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Camiseta&lt;/td&gt;
&lt;td&gt;Tamanho GG, cor preta e uma estampa nas costas.&lt;/td&gt;
&lt;td&gt;R$55,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calça&lt;/td&gt;
&lt;td&gt;Tecido Jeans, azul claro, com botão duplo.&lt;/td&gt;
&lt;td&gt;R$105,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<h3>THEAD &#8211; Cabeçalho da Tabela</h3>
<p>Normalmente as tabelas tem sempre uma linha de títulos, como a nossa tabela acima. Precisamos informar então, que essa linha é um cabeçalho, que contém os títilos das colunas ou linhas. Para isso, envolveremos a TR que contém as THs com a tag THEAD. Nosso código ficará dessa forma:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table summary=&quot;Lista de produtos em promoção&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Produto&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;th&gt;Valor&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tr&gt;
&lt;td&gt;Tênis&lt;/td&gt;
&lt;td&gt;Tênis com amortecedor, tecido vermelho com cadarço preto.&lt;/td&gt;
&lt;td&gt;R$350,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Camiseta&lt;/td&gt;
&lt;td&gt;Tamanho GG, cor preta e uma estampa nas costas.&lt;/td&gt;
&lt;td&gt;R$55,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calça&lt;/td&gt;
&lt;td&gt;Tecido Jeans, azul claro, com botão duplo.&lt;/td&gt;
&lt;td&gt;R$105,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<h3>TFOOT &#8211; Indicando o rodapé da tabela</h3>
<p>Logo após o THEAD, iremos indicar quais informações irão no rodapé do documento, utilizando a tag <strong>TFOOT</strong>. Aqui, iremos colocar as mesmas informações do THEAD, supondo que a tabela é muito grande e queremos que o usuário, ao chegar no rodape, não se perca com a identificação das colunas. Nosso código fica assim:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table summary=&quot;Lista de produtos em promoção&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Produto&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;th&gt;Valor&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tfoot&gt;
&lt;tr&gt;
&lt;th&gt;Produto&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;th&gt;Valor&lt;/th&gt;
&lt;/tr&gt;
&lt;/tfoot&gt;
&lt;tr&gt;
&lt;td&gt;Tênis&lt;/td&gt;
&lt;td&gt;Tênis com amortecedor, tecido vermelho com cadarço preto.&lt;/td&gt;
&lt;td&gt;R$350,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Camiseta&lt;/td&gt;
&lt;td&gt;Tamanho GG, cor preta e uma estampa nas costas.&lt;/td&gt;
&lt;td&gt;R$55,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calça&lt;/td&gt;
&lt;td&gt;Tecido Jeans, azul claro, com botão duplo.&lt;/td&gt;
&lt;td&gt;R$105,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<h3>TBODY &#8211; Indicando o corpo da tabela</h3>
<p>Se há um cabeçalho e um rodapé na tabela, é mais do que normal haver um BODY, apresentando as informações que de fato interessam ao usuário.<br />
O <strong>TBODY</strong> deve ir logo após a tag TFOOT. Sinceramente, não sei porque a tag TFOOT não vem após a TBODY, já que é o código de Rodapé. Se você souber, por favor, me diga!</p>
<p>Nosso código fica dessa forma:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table summary=&quot;Lista de produtos em promoção&quot;&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Produto&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;th&gt;Valor&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tfoot&gt;
&lt;tr&gt;
&lt;th&gt;Produto&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;th&gt;Valor&lt;/th&gt;
&lt;/tr&gt;
&lt;/tfoot&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tênis&lt;/td&gt;
&lt;td&gt;Tênis com amortecedor, tecido vermelho com cadarço preto.&lt;/td&gt;
&lt;td&gt;R$350,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Camiseta&lt;/td&gt;
&lt;td&gt;Tamanho GG, cor preta e uma estampa nas costas.&lt;/td&gt;
&lt;td&gt;R$55,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calça&lt;/td&gt;
&lt;td&gt;Tecido Jeans, azul claro, com botão duplo.&lt;/td&gt;
&lt;td&gt;R$105,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<h3>CAPTION &#8211; Título do Cabeçalho</h3>
<p>A tag <strong>CAPTION</strong> define um título para o cabeçalho da tabela. Esse título vai apresentar a tabela para o usuário. Ele deve ser colocado logo antes da tag THEAD e logo após tag TABLE.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;table summary=&quot;Lista de produtos em promoção&quot;&gt;
&lt;caption&gt;Produtos em Promoção&lt;/caption&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Produto&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;th&gt;Valor&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tfoot&gt;
&lt;tr&gt;
&lt;th&gt;Produto&lt;/th&gt;
&lt;th&gt;Descrição&lt;/th&gt;
&lt;th&gt;Valor&lt;/th&gt;
&lt;/tr&gt;
&lt;/tfoot&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Tênis&lt;/td&gt;
&lt;td&gt;Tênis com amortecedor, tecido vermelho com cadarço preto.&lt;/td&gt;
&lt;td&gt;R$350,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Camiseta&lt;/td&gt;
&lt;td&gt;Tamanho GG, cor preta e uma estampa nas costas.&lt;/td&gt;
&lt;td&gt;R$55,00&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Calça&lt;/td&gt;
&lt;td&gt;Tecido Jeans, azul claro, com botão duplo.&lt;/td&gt;
&lt;td&gt;R$105,00&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;</pre></td></tr></table></div>

<p>Já com essas tags diferenciadas, o trabalho que teríamos para formatar o cabeçalho, título e conteúdo da tabela ficou mais leve. Em vez de colocar class em tudo quanto é TR para diferenciar as partes da tabela, conseguimos formatar cada um desses grupos sem encostar no código HTML. Claro, que se você quiser fazer algo mais rebuscado, a modificação do código HTML será inevitável. Mas, com esse pouco código que escrevemos, já procrastinamos essa necessidade.<br />
<h3> </h3>
<ul class="related_post">
<li><a href="http://www.tableless.com.br/ah-o-maravilhoso-mundo-real" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li>
<li><a href="http://www.tableless.com.br/nao-otimize-seu-codigo" title="Não &#8220;otimize&#8221; seu código">Não &#8220;otimize&#8221; seu código</a></li>
<li><a href="http://www.tableless.com.br/implementar-xhtmlcss-e-gratis" title="Implementar XHTML/CSS é grátis">Implementar XHTML/CSS é grátis</a></li>
<li><a href="http://www.tableless.com.br/modulando-o-css" title="Modulando o CSS">Modulando o CSS</a></li>
<li><a href="http://www.tableless.com.br/o-caminho-suave-para-o-tableless" title="O Caminho Suave para o Tableless">O Caminho Suave para o Tableless</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tableless.com.br/tabelas-semanticas/feed</wfw:commentRss>
		<slash:comments>27</slash:comments>
		</item>
		<item>
		<title>O Safari para iPhone &#8211; Desenvolvimento web para iPhone</title>
		<link>http://www.tableless.com.br/o-safari-para-iphone</link>
		<comments>http://www.tableless.com.br/o-safari-para-iphone#comments</comments>
		<pubDate>Mon, 13 Oct 2008 09:00:05 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Browsers]]></category>
		<category><![CDATA[Internet Móvel]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[internetmovel]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobilidade]]></category>
		<category><![CDATA[tableless]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.tableless.com.br/?p=1023</guid>
		<description><![CDATA[O desenvolvimento web para mobiles está se tornando algo comum. Fazer sites para aparelhos como o iPhone deixou de ser coisa de outro mundo, mesmo assim, há certos detalhes que precisamos entender.]]></description>
			<content:encoded><![CDATA[<p>Esse texto e muitos outros fazem parte do <a title="Vídeos tutoriais sobre Tableless" href="http://visie.com.br/campus/">Campus Online</a>. Visite e <a href="http://visie.com.br/campus/cadastrese">cadastre-se grátis</a>!<br />
<a title="Desenvolvimento web para iPhone" href="http://visie.com.br/campus/iphone">Sessão exclusiva sobre Desenvolvimento web para iPhone</a>.</p>
<h3>Um pouco de História</h3>
<p>Por volta de 1997, os computadores da Apple traziam por padrão o Netscape. Naquele tempo o mercado de browsers não era tão acirrado como hoje e os concorrentes eram poucos. O Internet Explorer estava em sua versão 2/3. Mesmo assim, o Internet Explorer para Mac era também distribuído com o MacOS durante os 5 anos de acordo entre Apple e Microsoft. A Microsoft laçou 3 versões principais do seu navegador para o Mac, parando na versão 5 em março de 2000.<span id="more-1023"></span></p>
<p>Em 2003, a Apple anunciou que eles estavam desenvolvendo seu próprio browser baseado no motor de renderização KHTML. A versão 1.0 foi lançado como browser padrão do MacOS por volta de Junho de 2003. O Internet Explorer ainda era distribuido no sistema, mas agora como um navegador alternativo, até Abril de 2005.</p>
<h3>Motor de Renderização WebKit</h3>
<p>O Safari utiliza um motor de renderização chamado WebKit. O WebKit tem dois motores de renderização: o WebCore, que é o motor de renderização baseado no KTHML do Konqueror. E o JavaScriptCore, baseado no motor de javascript KDE chamado KJS. Esses motores estão sob Licensa GNU.</p>
<p>A Apple, ao fazer o Safari fez muitas atualizações e modificações no motor KHTML, deixando-o mais maduro e robusto. Essas modificações foram devolvidas para a comunidade e incorporadas no Konqueror.</p>
<h3>MobileSafari e Safari para Desktop</h3>
<p>A idéia é que o usuário tenha uma experiência muito próxima a experiência que ele tem no desktop. Por isso o Safari para iPhone (MobileSafari) foi feito sob o mesmo motor de renderização WebKit do Safari para Windows e Mac. Diferenças: 1) Se o site não foi feito para iPhone, ele renderiza a página da mesma forma como renderiza em um Safari para desktop, mas miniaturizada. 2) A interação do usuário.</p>
<h3>Padrões Suportados</h3>
<p>Para que a renderização do MobileSafari seja fiel ao Safari para desktop, ele tem grande suporte aos Padrões Web.</p>
<ul>
<li>HMTML 4.01</li>
<li>HTML 5</li>
<li>XHTML 1.0</li>
<li>CSS 2.1</li>
<li>Parte do CSS 3</li>
<li>Javascript 1.4</li>
<li>Ajax</li>
<li>DOM</li>
</ul>
<p>É interessante notar que temos uma certa liberdade de desenvolvimento web no iPhone. Há facilidades como cantos arredondados que não podemos contar no desenvolvimento focado para desktops. Isso tráz vantagens pra você, desenvolvedor, porque facilitará seu trabalho, e para o usuário porque ele terá uma experiência mais rica.</p>
<h3>Limites dos recursos</h3>
<p>Embora o iPhone suporte as tecnologias mais atuais de desenvolvimento web, não podemos esquecer de que ele é um dispositivo móvel, com capacidade de processamento muito menor que a de um desktop. Por isso, há algumas limitações de recursos que devemos nos atentar.</p>
<p>Para códigos:</p>
<ul>
<li>10Mb para arquivos Javascripts e XML</li>
<li>O tempo de execução de um Javascript é limitado a 10 segundos. Se passar de 10 segundos, o Safari pára a execução em algum lugar aleatório do seu código.</li>
<li>Javascripts alocados limitados a 10Mb</li>
<li>Máximo de 8 documentos abertos de uma vez</li>
</ul>
<p>Para imagens:</p>
<ul>
<li>Limite máximo do tamanho de GIF, PNG e TIFF são 2 Megapixels</li>
<li>A decodificação máxima dos tamanhos de JPGs são 32 Megapixels. Utilizando SubSampling</li>
<li>O tamanho máximo de GIFs animados deve ser menor que 2MB. Para arquivos animados maiores, só é mostrado o primeiro frame.</li>
</ul>
<p>Verifique sempre o tamanho final de sua página. Normalmente o sites com 30Mb para menos funcionam muito bem no iPhone.<br />
<h3> </h3>
<ul class="related_post">
<li><a href="http://www.tableless.com.br/sobre-internet-explorer-para-mobile-breve-impressao" title="Sobre Internet Explorer para Mobile &#8211; Breve impressão">Sobre Internet Explorer para Mobile &#8211; Breve impressão</a></li>
<li><a href="http://www.tableless.com.br/sites-para-dispositivos-moveis-mediatype" title="Sites para Dispositivos Móveis &#8211; MediaType">Sites para Dispositivos Móveis &#8211; MediaType</a></li>
<li><a href="http://www.tableless.com.br/navegacao-em-mobiles" title="Navegação em mobiles">Navegação em mobiles</a></li>
<li><a href="http://www.tableless.com.br/mobilidade-na-cabeca" title="Mobilidade na cabeça">Mobilidade na cabeça</a></li>
<li><a href="http://www.tableless.com.br/breve-introducao-xhtml-mobile-profile" title="Breve introdução: XHTML Mobile Profile">Breve introdução: XHTML Mobile Profile</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tableless.com.br/o-safari-para-iphone/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Estágio na Visie</title>
		<link>http://www.tableless.com.br/estagio-na-visie</link>
		<comments>http://www.tableless.com.br/estagio-na-visie#comments</comments>
		<pubDate>Wed, 23 Jul 2008 16:43:07 +0000</pubDate>
		<dc:creator>Elcio Ferreira</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[emprego]]></category>
		<category><![CDATA[trabalho]]></category>
		<category><![CDATA[visie]]></category>

		<guid isPermaLink="false">http://www.tableless.com.br/?p=1003</guid>
		<description><![CDATA[A Visie está recrutando estagiários em programação. Acreditamos que é uma boa oportunidade de aprender. Trata-se de um estágio remunerado, de três meses. Você vai trabalhar na construção de um produto real, com tecnologia de ponta e as melhores práticas de desenvolvimento.

Você precisa saber:

Lógica de programação
PHP básico
Javascript básico
Noções de Orientação a Objeto
Noções de Padrões web

O [...]]]></description>
			<content:encoded><![CDATA[<p>A Visie está recrutando estagiários em programação. Acreditamos que é uma boa oportunidade de aprender. Trata-se de um estágio remunerado, de três meses. Você vai trabalhar na construção de um produto real, com tecnologia de ponta e as melhores práticas de desenvolvimento.</p>
<p><span id="more-1003"></span></p>
<p>Você precisa saber:</p>
<ul>
<li>Lógica de programação</li>
<li>PHP básico</li>
<li>Javascript básico</li>
<li>Noções de Orientação a Objeto</li>
<li>Noções de Padrões web</li>
</ul>
<h3>O que você vai aprender?</h3>
<ul>
<li>Python</li>
<li>Orientação a Objeto de verdade, na prática</li>
<li>Testes Unitários</li>
<li>Subversion</li>
<li>jQuery</li>
</ul>
<p>Se você se der bem aprendendo os itens acima, terá chance de se divertir muito mais. Veja o que mais você pode aprender:</p>
<ul>
<li>Desenvolvimento no Linux</li>
<li>Padrões web</li>
<li>MySQL</li>
<li>Vim (se você estiver mesmo afim)</li>
</ul>
<p>Além disso, você terá acesso aos cursos da Visie que acontecerem no período em que estiver trabalhando conosco.</p>
<h3>A remuneração</h3>
<p>É um estágio. Temos remuneração para esse estágio bem acima da média do mercado, mas não vá sonhando com altos salários agora. Preocupe-se mais com o que você pode aprender do que com o quanto você pode ganhar imediatamente. Há possiblidade de efetivação ao final do estágio (com salário de verdade.)</p>
<h3>Como se inscrever?</h3>
<p>Mande seu CV para trampo arroba visie.com.br. No e-mail, fale um pouco sobre você e sua experiência com desenvolvimento. Coloque no título do e-mail: ESTÁGIO VISIE.</p>
<h3>Peguntas comuns</h3>
<dl>
<dt>Posso trabalhar à distância?</dt>
<dd>Não. É um estágio. Não queremos apenas que você trabalhe. Queremos te ensinar um bocado de coisas. Não dá para fazer isso à distância.</dd>
<dt>Não é estranho pedir que o sujeito tenha &#8220;experiência&#8221;, ou conhecimentos em PHP e Javascript. Uma vez que ele está indo a um estágio para aprender?</dt>
<dd>Não. A web está aí. O estágio não é para que você aprenda o que poderia ter aprendido sozinho em sua casa. É para te ensinar o que você só vai aprender se vier até aqui. Estamos pedindo conhecimento básico.</dd>
<dt>Preciso estar na faculdade?</dt>
<dd>Não.</dd>
<dt>Posso indicar isso para um amigo?</dt>
<dd>Claro. Por favor.</dd>
</dl>
<h3> </h3>
<ul class="related_post">
<li><a href="http://www.tableless.com.br/ah-o-maravilhoso-mundo-real" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li>
<li><a href="http://www.tableless.com.br/implementar-xhtmlcss-e-gratis" title="Implementar XHTML/CSS é grátis">Implementar XHTML/CSS é grátis</a></li>
<li><a href="http://www.tableless.com.br/modulando-o-css" title="Modulando o CSS">Modulando o CSS</a></li>
<li><a href="http://www.tableless.com.br/nao-otimize-seu-codigo" title="Não &#8220;otimize&#8221; seu código">Não &#8220;otimize&#8221; seu código</a></li>
<li><a href="http://www.tableless.com.br/tabelas-semanticas" title="Tabelas semânticas">Tabelas semânticas</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tableless.com.br/estagio-na-visie/feed</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>Wordpress Include Tags</title>
		<link>http://www.tableless.com.br/wordpress-include-tags</link>
		<comments>http://www.tableless.com.br/wordpress-include-tags#comments</comments>
		<pubDate>Sun, 06 Jul 2008 06:22:43 +0000</pubDate>
		<dc:creator>Diego Eis</dc:creator>
				<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[Wordpress]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[themes]]></category>
		<category><![CDATA[xhtml]]></category>

		<guid isPermaLink="false">http://www.tableless.com.br/?p=998</guid>
		<description><![CDATA[O Wordpress tem 3 TemplatesTags para incluir elementos básicos de Cabeçalho, Coluna lateral (sidebar) e Rodapé, são eles: get_header(), get_sidebar() e get_footer(). Essas TemplateTags não aceitam qualquer tipo de parâmetro, portanto são simples de se aplicar. Em todos os themes do Wordpress, essas 3 TemplateTags estão sempre presentes, mesmo assim, você pode modificar isso incluindo [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://wordpress.org/">Wordpress</a> tem 3 TemplatesTags para incluir elementos básicos de Cabeçalho, Coluna lateral (sidebar) e Rodapé, são eles: get_header(), get_sidebar() e get_footer(). Essas TemplateTags não aceitam qualquer tipo de parâmetro, portanto são simples de se aplicar. Em todos os themes do Wordpress, essas 3 TemplateTags estão sempre presentes, mesmo assim, você pode modificar isso incluindo outro arquivo que não seja o padrão que o WP estabeleceu.<br />
<span id="more-998"></span></p>
<h3>get_header()</h3>
<p>O <strong>&lt;?php get_header(); ?&gt;</strong>inclui em seu template o arquivo header.php, que é onde vai o cabeçalho do seu site. É lá onde vai o começo da estrutura básica do HTML &#8211; Doctype, html, head, title, metatags e body.</p>
<h3>get_sidebar()</h3>
<p>O <strong>&lt;?php get_sidebar(); ?&gt;</strong> é a função que incluirá em seu template a sua coluna lateral. Menu lateral, banners, informações e tudo o que normalmente vai em um sidebar.</p>
<h3>get_footer()</h3>
<p>O <strong>&lt;?php get_footer(); ?&gt;</strong> inclui em seu template o arquivo footer.php. É lá onde você normalmente termina seu . É neste arquivo que você terá o código do rodapé e de elementos que sempre seguirão o final da página.</p>
<p>Se o Wordpress não encontrar, por exemplo o arquivo footer.php, ele irá incluir o arquivo relacionado do theme default: wp-content/themes/default/footer.php. O mesmo acontece para o sidebar.php, o header.php e o comments_template().</p>
<h3>Incluindo qualquer arquivo</h3>
<p>Claro que você vai querer incluir outros arquivos. Por exemplo, caso seu site tiver duas colunas, ou o seu cabeçalho for muito grande e você quiser inserir os elementos em arquivos separados. Nestes casos você pode utilizar esse código:</p>
<p><code>&lt;?php include (TEMPLATEPATH . '/header2.php'); ?&gt;</code></p>
<p>O Wordpress vai inserir o arquivo pedido como um include PHP normal.</p>
<p>Quer saber mais sobre Wordpress? <a href="http://www.tableless.com.br/wordpress">Fique antenado aqui</a>!<br />
<h3> </h3>
<ul class="related_post">
<li><a href="http://www.tableless.com.br/wordpress-uma-pequena-introducao" title="Wordpress &#8211; Uma pequena introdução">Wordpress &#8211; Uma pequena introdução</a></li>
<li><a href="http://www.tableless.com.br/colocar-rodape-fixo-no-bottom" title="Colocar Rodapé fixo no fim da página">Colocar Rodapé fixo no fim da página</a></li>
<li><a href="http://www.tableless.com.br/convertido-menu-livraria-cultura" title="Convertido &#8211; Menu (Livraria Cultura)">Convertido &#8211; Menu (Livraria Cultura)</a></li>
<li><a href="http://www.tableless.com.br/ah-o-maravilhoso-mundo-real" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li>
<li><a href="http://www.tableless.com.br/introducao-ao-css-animation" title="Introdução ao CSS Animation">Introdução ao CSS Animation</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tableless.com.br/wordpress-include-tags/feed</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>10º Encontro Locaweb de Profissionais de Internet</title>
		<link>http://www.tableless.com.br/10o-encontro-locaweb</link>
		<comments>http://www.tableless.com.br/10o-encontro-locaweb#comments</comments>
		<pubDate>Fri, 18 Apr 2008 19:08:09 +0000</pubDate>
		<dc:creator>Elcio Ferreira</dc:creator>
				<category><![CDATA[Geral]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[convite]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[evento]]></category>
		<category><![CDATA[gratis]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[locaweb]]></category>
		<category><![CDATA[palestra]]></category>

		<guid isPermaLink="false">http://www.tableless.com.br/?p=971</guid>
		<description><![CDATA[Está chegando o 10º Encontro Locaweb de Profissionais de Internet, e eu vou participar novamente esse ano. Vou falar sobre produtividade no desenvolvimento, mas com uma abordagem bem diferente da que usei ano passado no Intercon. Dessa vez, vou escrever código.
E você, nosso fiel leitor, pode ganhar um convite. Vamos publicar posts &#8220;relâmpago&#8221; aqui no [...]]]></description>
			<content:encoded><![CDATA[<p>Está chegando o <a href="https://www.locaweb.com.br/encontro/">10º Encontro Locaweb de Profissionais de Internet</a>, e eu vou participar novamente esse ano. Vou falar sobre produtividade no desenvolvimento, mas com uma abordagem bem diferente da que usei ano passado no Intercon. Dessa vez, vou escrever código.</p>
<p>E você, nosso fiel leitor, pode ganhar um convite. <span id="more-971"></span>Vamos publicar posts &#8220;relâmpago&#8221; aqui no Tableless dias antes dos eventos do Rio de Janeiro, Porto Alegre, Belo Horizonte e Curitiba. Cada post vem com uma pergunta sobre XHTML, CSS ou programação. A primeira pessoa que responder corretamente a pergunta ganha um convite. Vão ser dez perguntas e dez convites para cada cidade, fique ligado.</p>
<p>Já tenho uma mini-aplicação a desenvolver, mas ainda dá tempo de mudar de idéia, ou mesmo de incorporar a ela idéias criativas. Se você tiver alguma sugestão, por favor, deixe um comentário.<br />
<h3> </h3>
<ul class="related_post">
<li><a href="http://www.tableless.com.br/formularios-definitivos-e-problema-de-logica" title="Formulários definitivos e problema de lógica">Formulários definitivos e problema de lógica</a></li>
<li><a href="http://www.tableless.com.br/elpi-poa-ainda-da-tempo" title="ELPI POA: ainda dá tempo!">ELPI POA: ainda dá tempo!</a></li>
<li><a href="http://www.tableless.com.br/ah-o-maravilhoso-mundo-real" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li>
<li><a href="http://www.tableless.com.br/digest-0609-javascript-jquery" title="Digest 06/09: Javascript, JQuery">Digest 06/09: Javascript, JQuery</a></li>
<li><a href="http://www.tableless.com.br/digest-0509-javascript-jquery" title="Digest 05/09: Javascript, JQuery">Digest 05/09: Javascript, JQuery</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tableless.com.br/10o-encontro-locaweb/feed</wfw:commentRss>
		<slash:comments>24</slash:comments>
		</item>
		<item>
		<title>O Caminho Suave para o Tableless</title>
		<link>http://www.tableless.com.br/o-caminho-suave-para-o-tableless</link>
		<comments>http://www.tableless.com.br/o-caminho-suave-para-o-tableless#comments</comments>
		<pubDate>Thu, 06 Dec 2007 20:11:11 +0000</pubDate>
		<dc:creator>Elcio Ferreira</dc:creator>
				<category><![CDATA[Artigos]]></category>
		<category><![CDATA[Na Prática]]></category>
		<category><![CDATA[Tecnologia e Tendências]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[Semântica]]></category>
		<category><![CDATA[tableless]]></category>
		<category><![CDATA[tableless.com.br]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[web standards]]></category>
		<category><![CDATA[xhtml]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xslt]]></category>

		<guid isPermaLink="false">http://www.tableless.com.br/o-caminho-suave-para-o-tableless</guid>
		<description><![CDATA[A maior parte dos desenvolvedores web, designers ou programadores, começaram antes do surgimento dos movimentos em prol dos padrões web, usando tabelas para montar layouts em editores WYSIWYG, e ainda hoje este método é usado na maioria dos projetos de internet. Logo, é natural que muita gente, ao começar a entender o valor dos padrões, [...]]]></description>
			<content:encoded><![CDATA[<p>A maior parte dos desenvolvedores web, designers ou programadores, começaram antes do surgimento dos movimentos em prol dos <a href="http://www.webstandards.org/" title="Web Standards Project">padrões web</a>, usando tabelas para montar layouts em editores <acronym title="What You See Is What You Get, Editores Visuais">WYSIWYG</acronym>, e ainda hoje este método é usado na maioria dos projetos de internet. Logo, é natural que muita gente, ao começar a entender o valor dos <a href="http://www.webstandards.org/" title="Web Standards Project">padrões</a>, se pergunte como migrar do desenvolvimento &#8220;tradicional&#8221; para o desenvolvimento de código semanticamente coerente.</p>
<p>É um caminho muito duro o que separa o desenvolvedor acostumado a editores visuais do desenvolvimento de código coerente. E é muito comum que o designer desista após uma primeira tentativa frustrada de desenvolver um website tableless, com layout <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a> e <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> <a href="http://validator.w3.org/" title="W3C MarkUp Validation Service">validado</a>.</p>
<p>Por isso gostaria de propor um caminho gradual, mais suave, para aqueles que querem se aventurar pela primeira vez pelos <a href="http://www.webstandards.org/" title="Web Standards Project">padrões web</a>. O princípio desse método é da recompensa. Você pode obter um grande benefício aproximando seu código dos <a href="http://www.webstandards.org/" title="Web Standards Project">padrões web</a>, mesmo que não faça tudo de uma vez. Quero mostrar como você pode começar, e obter benefícios imediatos.</p>
<h3>Limpe seu HTML</h3>
<p>A minha primeira recomendação é que você estude <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>. Comece pela formatação básica de fonte, cor e tamanho. Isso vai te garantir código menor e produtividade maior com pouquíssimo esforço.</p>
<p>Assim, ao criar um item de menu, você vai evitar códigos como este:</p>
<pre>
&lt;a href="parceiros.asp"&gt;&lt;font
face="Arial, Helvetica, Sans-serif" size="2"
color="#FF3300"&gt;&lt;b&gt;Parceiros&lt;/b&gt;&lt;/font&gt;&lt;/a&gt;</pre>
<p>Colocando no lugar:</p>
<pre>&lt;a href="parceiros.asp" class="menu"&gt;Parceiros&lt;/a&gt;</pre>
<p>Tendo no <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>:</p>
<pre>
.menu{
<a href="http://www.w3.org/TR/REC-CSS1#font-family">font-family</a>: Arial, Helvetica, Sans-serif;
<a href="http://www.w3.org/TR/REC-CSS1#font-size">font-size</a>: 80%;
<a href="http://www.w3.org/TR/REC-CSS1#font-weight">font-weight</a>: bold;
<a href="http://www.w3.org/TR/REC-CSS1#color">color</a>:#FF3300;
}</pre>
<p>Como você pode ver, o <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a> é extremamente simples. Aprender esses quatro atributos, mais o &#8220;<a href="http://www.w3.org/TR/REC-CSS1#font-style">font-style</a>&#8221; (para fazer itálico), é a primeira coisa que eu recomendo. É claro, isso apenas faz cócegas nas possibilidades do <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>, ainda há muito o que aprender, mas recomendo começar por aí porque é algo que você pode aprender em alguns minutos e vai te salvar muito, muito tempo. E você vai começar a ter o controle da formatação, tendo todas as definições de fonte em um único arquivo, podendo alterar, por exemplo, a qualquer momento, a fonte de todo o conteúdo ou de todos os menus do site.</p>
<p>O passo seguinte para limpar seu HTML é se livrar do spacer.gif, aquele gif transparente de 1 pixel que se usa para dar espaços em tabelas, e das dezenas de tabelas aninhadas. Para isso vamos começar a estudar o &#8220;box-model&#8221;.</p>
<p>O pulo-do-gato aqui é um atributo <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a> chamado <a href="http://www.w3.org/TR/REC-CSS1#padding">padding</a>. O <a href="http://www.w3.org/TR/REC-CSS1#padding">padding</a> é a distância entre as bordas de um elemento e o texto dentro dele. Assim, se é preciso que o conteúdo de uma célula esteja a 10 pixels da borda esquerda, ao invés de inserir uma célula extra como espaçador, ou inserir mais uma tabela, basta definir uma classe para essa célula. Uma vez que você já está colocando a formatação no <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>, provavelmente esta célula já tem uma classe. Então basta:</p>
<pre>
.conteudo{
<a href="http://www.w3.org/TR/REC-CSS1#padding">padding</a>-left:10px;
}</pre>
<p>Isso vai fazer com que o texto esteja a 10 pixels da borda esquerda do documento. Ah, claro, o <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a> também pode livrar você de definir no HTML as bordas e o background das células de sua tabela. Lembre-se, quanto mais layout e formatação você colocar no <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>, mais controle terá sobre seu site, principalmente em mudanças de layout durante o processo de produção e em futuras manutenções. O site também será mais leve para carregar.</p>
<p>Concluímos então que, após aprender os atributos de formatação de fonte, o passo seguinte é aprender os atributos <a href="http://www.w3.org/TR/REC-CSS1#background">background</a>, <a href="http://www.w3.org/TR/REC-CSS1#border">border</a> e <a href="http://www.w3.org/TR/REC-CSS1#padding">padding</a>. Indo até aqui você com certeza será um desenvolvedor muito mais feliz! Depois de limpar seu HTML, ganhar controle sobre a formatação de seu site e se tornar muito mais produtivo, você está pronto para passar à segunda etapa, correndo atrás da semântica.</p>
<h3>Começando o Trabalho de Gente Grande</h3>
<p>Muito bem, agora você já pode limpar seu código. Vamos estudar um exemplo prático. No começo de cada uma de suas páginas você tem um título, cujo código hoje é assim:</p>
<pre>
&lt;font face="Arial, Helvetica, Sans-serif" size="4"
color="#FFFF00"&gt;&lt;b&gt;Novidades&lt;/b&gt;&lt;/font&gt;</pre>
<p>Ao limpar esse código, você vai substituir esse monte de tags por uma só. Que tag você vai usar? Como o <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a> te permite formatar qualquer elemento, muita gente que começa a estudar o assunto acha que é indiferente que tag usar, e coloca algo como:</p>
<pre>&lt;p class="titulo"&gt;Novidades&lt;/p&gt;</pre>
<p>Agora, veja bem, outro desenvolvedor poderia resolver o mesmo problema com:</p>
<pre>&lt;div class="titulo"&gt;Novidades&lt;/div&gt;</pre>
<p>E o resultado visual poderia ser o mesmo. Acontece que há algo na natureza do HTML que nos diz que tag usar. Chamamos esse algo de &#8220;semântica&#8221;: as tags do HTML tem significado. A tag P é para parágrafos, a tag DIV para divisões no conteúdo, e há uma série de tags para título, h1, h2, h3, h4, h5 e h6. Assim, se você pode usar qualquer tag, pode fazer assim:</p>
<pre>&lt;h1&gt;Novidades&lt;/h1&gt;</pre>
<p>O que você ganha com essa preocupação? Os buscadores inteligentes podem ler semanticamente o conteúdo de um documento, entendendo que trecho de código é um título, por exemplo. Assim, escrever HTML semanticamente correto pode melhorar muito sua visibilidade em buscadores. O segundo bom motivo é que você vai saber para que serve cada tag se tiver que mexer nesse mesmo documento daqui a alguns meses. E vai ser mais fácil também se outra pessoa tiver que dar manutenção no seu código.</p>
<p>Logo, use as tags do HTML para aquilo para o que foram criadas:</p>
<ul>
<li>dd, dl e dt para listas de definições (um glossário, por exemplo)</li>
<li>h1 a h6 para títulos</li>
<li>p para parágrafos</li>
<li>abbr para abreviaturas e acronym para acrônimos</li>
<li>blockquote e q para citações longas e curtas</li>
<li>address para endereços (sabe aquele rodapé onde vai o endereço e o telefone da empresa?)</li>
<li>ul e ol para listas e li para os itens da lista</li>
</ul>
<p>Você pode obter uma lista mais abrangente em:<br />
<a href="http://www.w3schools.com/xhtml/xhtml_reference.asp" title="XHTML Reference">http://www.w3schools.com/xhtml/xhtml_reference.asp</a></p>
<p>E formate tudo ao seu gosto com <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>.</p>
<h3>Finalmente, Livrando-se das Tabelas</h3>
<p>Não há bons motivos para você eliminar a qualquer custo todas as tabelas de seu primeiro trabalho. Conheço alguns excelentes profissionais, muito talentosos, que fizeram um ótimo trabalho em sua primeira tentativa de tableless. Mas a maioria dos que eu vi tentarem demoraram muito para conseguir da primeira vez, e alguns não obtiveram os resultados que esperavam. Isso tudo serve para que você possa produzir mais rápido e melhor, não o contrário. Então vá com calma. Faça alguns estudos em tableless, comece eliminando parte das tabelas em seus primeiros trabalhos. Por exemplo, remover as células de tabela que formam o menu, trocando por uma lista (com as tags ul e li), é um ótimo desafio para o primeiro projeto.</p>
<p>Ah, e não se esqueça que para dados como uma tabela periódica ou um calendário a solução semanticamente correta é a tabela mesmo. Ou seja, tableless não é ausência de tabelas, é o seu uso apenas onde é semanticamente justificável.</p>
<p>Não vou entrar em detalhes aqui, porque já escrevi bastante sobre como construir um layout no <a href="http://www.tableless.com.br/tutorial/">Tutorial Tableless Básico</a>, mas o conselho é ir com calma, sem estresse. Você logo vai estar produzindo tableless mais fácil do que produz sites com tabelas.</p>
<h3>XHTML</h3>
<p>Há uma coisa que muita gente que está começando me pergunta: o que é e para que serve esse tal de <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a>? É muito mais simples do que parece. Um arquivo <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> é um arquivo HTML, que pode ser lido por qualquer browser. Não estamos falando de um novo HTML, com novas tags ou coisa assim. Pelo contrário, o <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> 1 foi feito para funcionar mesmo em navegadores antigos. Mas, ao mesmo tempo, Um arquivo <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> é também um arquivo <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a> <a href="http://validator.w3.org/" title="W3C MarkUp Validation Service">válido</a>, que pode ser lido por qualquer interpretador de <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a>.</p>
<p>Meu primeiro conselho, nesse caso, é que você, se não trabalha com <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a>, deixe preocupação com o <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> para depois de dominar bem o código semântico e o layout tableless. Não porque seja complicado, pelo contrário, transformar bom HTML em <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> é bem simples, mas simplesmente porque você pode obter benefícios muito significativos, e muito mais rapidamente, aprendendo <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a> do que <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a>.</p>
<p>O segundo conselho é que você comece a estudar o assunto. Depois de dominar bem layouts <a href="http://www.w3.org/Style/CSS/" title="Cascading Style Sheets">CSS</a>, mergulhe no <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a>. A maioria dos bancos de dados hoje permite extrair dados diretamente em <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a> e todas as plataformas de aplicações web trabalham bem com <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a>. E com a poderosa linguagem <a href="http://www.w3.org/Style/XSL/" title="Extensible Stylesheet Language">XSLT</a> você pode muito facilmente oferecer seus os dados em <a href="http://www.w3schools.com/xhtml/" title="Extensible HyperText Markup Language">XHTML</a> para o navegador. </p>
<h3>Voando Alto</h3>
<p>Estamos falando de muito mais do que criar sites estilosos. Há duas semanas esteve aqui um amigo com um Palm novo, um <a href="http://www.palmone.com/us/products/handhelds/zire71/">Zire 71</a>, e um celular com acesso à internet. Isso está se tornando cada vez mais barato e comum. Conheço também uma porção de empresas e instituições, entre elas uma série significativa de TeleCentros e órgãos públicos, que estão adotando <a href="http://www.google.com.br/search?q=Linux&amp;btnI=1&amp;lr=lang_pt">Linux</a> como sistema operacional para desktops. O <a href="http://www.google.com.br" title="O Oráculo">Google</a> hoje é responsável por 90% do tráfego que meu site consegue de buscadores. É o primeiro colocado absoluto entre os buscadores. E conseguiu isso indexando semanticamente o conteúdo real dos sites. Praticamente todas as plataformas web estão oferendo suporte a <a href="http://www.w3.org/XML/" title="Extensible Markup Language">XML</a> e apostando na idéia de <a href="http://www.google.com.br/search?q=webservices+xml&amp;btnI=1&amp;lr=lang_pt">webservices</a>.</p>
<p>Quem segue os <a href="http://www.webstandards.org/" title="Web Standards Project">padrões web</a> não precisa ter medo do futuro. Não importa que browser vai ser o mais usado daqui a dois anos, que tecnologia vai estar na moda ou de onde as pessoas vão estar usando a internet. Seu site estará lá, leve, acessível, atual e útil.<br />
<h3> </h3>
<ul class="related_post">
<li><a href="http://www.tableless.com.br/ah-o-maravilhoso-mundo-real" title="Ah, o maravilhoso mundo real">Ah, o maravilhoso mundo real</a></li>
<li><a href="http://www.tableless.com.br/sobre-internet-explorer-para-mobile-breve-impressao" title="Sobre Internet Explorer para Mobile &#8211; Breve impressão">Sobre Internet Explorer para Mobile &#8211; Breve impressão</a></li>
<li><a href="http://www.tableless.com.br/sites-para-dispositivos-moveis-mediatype" title="Sites para Dispositivos Móveis &#8211; MediaType">Sites para Dispositivos Móveis &#8211; MediaType</a></li>
<li><a href="http://www.tableless.com.br/o-que-etableless" title="O que é Tableless?">O que é Tableless?</a></li>
<li><a href="http://www.tableless.com.br/nao-otimize-seu-codigo" title="Não &#8220;otimize&#8221; seu código">Não &#8220;otimize&#8221; seu código</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.tableless.com.br/o-caminho-suave-para-o-tableless/feed</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
	</channel>
</rss>
