﻿<?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>TidBits&#187; HTML</title>
	<atom:link href="http://www.tidbits.com.br/tag/html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tidbits.com.br</link>
	<description>Desenvolvimento de Front End</description>
	<lastBuildDate>Wed, 18 Jan 2012 00:41:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Snake &#8211; Jogo em html5 usando Canvas</title>
		<link>http://www.tidbits.com.br/snake-jogo-em-html5-usando-canvas</link>
		<comments>http://www.tidbits.com.br/snake-jogo-em-html5-usando-canvas#comments</comments>
		<pubDate>Thu, 06 May 2010 15:06:14 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[canvas]]></category>
		<category><![CDATA[Games]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jogo]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=1544</guid>
		<description><![CDATA[Nos próximos posts vou escrever um pouco das experiências em html5 que ando fazendo. Pra iniciar, fiz um jogo simples daqueles que todo celular tem, usando somente o elemento Canvas. O Canvas funciona como se fosse um &#8220;shape&#8221; do photoshop, você cria um elemento e lá você pode desenhar literalmente, circulos, quadrados, linhas, pontos, colocar [...]]]></description>
			<content:encoded><![CDATA[<p>Nos próximos posts vou escrever um pouco das experiências em html5 que ando fazendo.</p>
<p>Pra iniciar, fiz <a href="http://www.tidbits.com.br/download/html5/snake/snake.html" target="_blank">um jogo simples</a> daqueles que todo celular tem, usando somente o elemento Canvas.</p>
<p>O Canvas funciona como se fosse um &#8220;shape&#8221; do photoshop, você cria um elemento e lá você pode desenhar literalmente, circulos, quadrados, linhas, pontos, colocar backgrounds, usar degradê, etc.</p>
<p>O Canvas não dá suporte ao ie6, ie7 e ie8. Existe um elemento similar pra eles chamado &#8220;shape&#8221; e existem algumas libs em javascript que traduz automaticamente tudo o que for desenhado em canvas pra shape, ou seja, você chama o js que ele se vira com o resto. No caso, usei o <a href="http://code.google.com/p/explorercanvas/downloads/list" target="_blank">explorercanvas</a> (dica do Koji), mas também tem o html5.js e o canvas.js disponível pra gente usar.</p>
<p><a href="http://www.tidbits.com.br/download/html5/snake/snake.html" target="_blank" title="Clique na imagem para jogar"><img src="http://www.tidbits.com.br/wp-content/uploads/2010/05/jogo-em-html5.png" alt="Jogo em html5" title="Jogo em html5" width="523" height="427" class="aligncenter size-full wp-image-1545" /></a></p>
<p>O jogo é bem simples, não tem muitos recursos, poderia ter ranking, som, opções e um monte plus mas não era essa a intenção do primeiro post sobre html5. O jogo tem 8kb (somando html / css  e javascript ) pros browsers que suportam canvas e 19kb para os que não suportam.  não usa nenhum framework de javascript (do tipo jquery, mootols, prototype) e não faz requisição de nenhuma imagem, tudo que está na tela foi desenhado em canvas com javascript.</p>
<p>Deixei disponível o <a href="http://www.tidbits.com.br/download/html5/snake/snake.zip"> código fonte </a> e para jogar é só clicar na imagem ou <a href="http://www.tidbits.com.br/download/html5/snake/snake.html" target="_blank"> entrar aqui</a></p>
<p>Por sinal, recomento o Chrome ou Opera 10.5 que são os browsers mais rápidos da atualidade.</p>
<p>Quem jogar, fala quantos pontos fez.<br />
=)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/snake-jogo-em-html5-usando-canvas/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>CSS Sprites &#8211; Aumente o desempenho do seu site</title>
		<link>http://www.tidbits.com.br/css-sprites-aumente-o-desempenho-do-seu-site</link>
		<comments>http://www.tidbits.com.br/css-sprites-aumente-o-desempenho-do-seu-site#comments</comments>
		<pubDate>Thu, 04 Dec 2008 12:39:31 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[CSS Sprites]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=1048</guid>
		<description><![CDATA[CSS Sprites é uma técnica muito usada em grandes portais que serve para melhorar o desempenho do site diminuindo o número de requisições HTTP. É uma técnica bem simples que serve para unir várias imagens em um só arquivo e posicionar o conteúdo através de CSS. Ficou tudo muito abstrato né? Imagine o seguinte menu [...]]]></description>
			<content:encoded><![CDATA[<p>CSS Sprites é uma técnica muito usada em grandes portais que serve para melhorar o desempenho do site diminuindo o número de requisições HTTP. É uma técnica bem simples que serve para unir várias imagens em um só arquivo e posicionar o conteúdo através de CSS.</p>
<p>Ficou tudo muito abstrato né?</p>
<p>Imagine o seguinte menu (onde cada time tem um link próprio):</p>
<p><img src="http://www.tidbits.com.br/wp-content/uploads/2008/12/bg_css_sprite.png" alt="Exemplo de CSS Sprite" title="Exemplo de CSS Sprite" /></p>
<p>Agora pergunto: </p>
<p>Quantas imagens são necessárias pra fazer essa coleção de escudos de times?</p>
<p>Apenas uma imagem.</p>
<p>Fixando a altura e a largura de cada botão, podemos posicionar o background de cada link com o css position.</p>
<p>É mais trabalhoso, mas tem vantagens: </p>
<p>Carregando uma imagem grande ao invés de várias imagens pequenas, economizamos banda (nesse exemplo eram 31kb agora são 11), porque pra cada imagem tem cabeçalho, paleta de cores usadas na figura, enfim, uma série de dados que se repetiam em todos os times. E quando tempos uma figura só no lugar de 32, esses dados são preenchidos uma vez somente, e assim economizamos banda.</p>
<p>Além disso, o que melhora e muito a velocidade, é fazer uma só conexão HTTP. <img src="http://www.tidbits.com.br/download/_images/copy.gif" alt="veja mais tidbits"/> Em arquivos muito pequenos, costuma demorar mais pra estabelecer uma conexão com o servidor do que o próprio download em sí. Então, 31 conexões a menos com o servidor, dão uma boa diferença no tempo total do load da página.</p>
<p>É simples pra fazer, tem duas formas. </p>
<p>Imagine o HTML desse exemplo:</p>
<pre class="brush: xml; title: ; notranslate">

&lt;ul class=&quot;escudos&quot;&gt;
	&lt;li&gt;&lt;a href=&quot;/atleticomineiro&quot;&gt;Atlético Mineiro&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;/atleticoparanaense&quot;&gt;Atlético Paranaense&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a href=&quot;/barcelona&quot;&gt;Barcelona&lt;/a&gt;&lt;/li&gt;
	...
&lt;/u&gt;
</pre>
<p>A primeira forma, que eu acho mais simples, funciona como um &#8220;mapeamento&#8221; da imagem:</p>
<pre class="brush: css; title: ; notranslate">

/*
	Adicionando a única imagem de
	backgrounde e definindo largura na UL
 */
ul.escudos{
	background:url('times.png');
	width: 280px;
}

/*
	Posicionando os LI's com float
	como fazemos normalmente
*/
ul.escudos li{ float:left; }

/*
	Definindo uma largura e altura fixa para
	os links e adicionando text-indent negativo
	para fazer o imagem-replacement
*/
ul.escudos li a{
	width:35px;
	height:35px;
	display:block;
	text-indent:-9999px;
}
</pre>
<p>A segunda forma é uma coleção de css position</p>
<pre class="brush: css; title: ; notranslate">

/* Definindo a largura somente */
ul.escudos{	width: 280px;}

*
	Posicionando os LI's com float
	como fazemos normalmente
*/
ul.escudos li{ float:left; }

/*
	Definindo uma largura e altura fixa para
	os links e adicionando text-indent negativo
	para fazer o imagem-replacement
*/
ul.escudos li a{
	width:35px;
	height:35px;
	display:block;
	text-indent:-9999px;
}

/*
	Adicionando o background com todos
	os escudos em todos os li's
*/
ul.escudos li{ background:url('times.png'); }

/*
	Adicionando um background para cada li
	(seria necessario colocar uma classe / id
	para cada elemento). Veja os exemplos:
*/
ul.escudos li.atleticomineiro { background-position: 0 0; }
ul.escudos li.atleticoparanaense { background-position: 35px 0; }
ul.escudos li.barcelona { background-position: 70px 0; }
</pre>
<p>A mesma técnica pode ser aplicada em menus, principalmente com mouse over:</p>
<pre class="brush: xml; title: ; notranslate">

&lt;ul class=&quot;menu&quot;&gt;
	&lt;li class=&quot;videos&quot;&gt;&lt;a href=&quot;videos.php&quot;&gt;Vídeos&lt;/a&gt;&lt;/li&gt;
	...
&lt;/u&gt;
</pre>
<p>A imagem é uma só para o estado normal e o estado com over.</p>
<p><img src="http://www.tidbits.com.br/wp-content/uploads/2008/12/bt_videos.gif" alt="" title="Exemplo com css sprite" /></p>
<p>E no CSS:</p>
<pre class="brush: css; title: ; notranslate">

#menu li.videos a {
	background: url('/images/video.gif');
	display: block;
	width: 71px;
	height: 19px;
	text-indent: -9999px;
}
#menu li.videos a:hover { background-position: bottom; }
</pre>
<p>Repare que o height do link é metade do tamanho da imagem, assim, quando passa o mouse por cima do botão, o background é movido pra baixo dando a sensação de duas imagens diferentes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/css-sprites-aumente-o-desempenho-do-seu-site/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>myParallax &#8211; Parallax com javascript com jQuery</title>
		<link>http://www.tidbits.com.br/myparallax-parallax-com-javascript-com-jquery</link>
		<comments>http://www.tidbits.com.br/myparallax-parallax-com-javascript-com-jquery#comments</comments>
		<pubDate>Fri, 28 Nov 2008 10:26:50 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Parallax]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=1026</guid>
		<description><![CDATA[Ultimamente tenho visto scrips interessantes em javascript simulando aquele efeito muito comum no flash o qual chamamos de parallax. No dhteumeuleu, no CSSLab e no Stephband tem exemplos bem legais e bem complexos dessa técnica. E essa semana, fazendo um freela, precisei criar algo nesse estilo. E acabei criando um script BEM SIMPLES que simula [...]]]></description>
			<content:encoded><![CDATA[<p>Ultimamente tenho visto scrips interessantes em javascript simulando aquele efeito muito comum no flash o qual chamamos de parallax.</p>
<p>No <a href="http://www.dhteumeuleu.com/run/parallax-III/" target="_blank">dhteumeuleu</a>,  no <a href="http://www.csslab.cl/ejemplos/parallax_mootools/" target="_blank">CSSLab</a> e no <a href="http://webdev.stephband.info/parallax.html" target="_blank"> Stephband </a> tem exemplos bem legais e bem complexos dessa técnica.</p>
<p>E essa semana, fazendo um freela, precisei criar algo nesse estilo. E acabei criando um script <strong>BEM SIMPLES</strong> que simula core do efeito. </p>
<p>Veja o exemplo abaixo e passe o mouse em cima:</p>
<p><iframe width="460" height="304" frameborder="0" scrolling="no" src="http://www.tidbits.com.br/download/exemplos/myParallax/myParallax.html"></iframe>	</p>
<p>Vou explicar como fiz:</p>
<p>O HTML:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;div id=&quot;container&quot;&gt;
	&lt;div id=&quot;conteudo&quot;&gt;
		&lt;img src=&quot;_images/parallax.jpg&quot; alt=&quot;Parallax&quot;/&gt;
	&lt;/div&gt;
&lt;/div&gt;
</pre>
<p>O CSS: </p>
<pre class="brush: css; title: ; notranslate">
	#container { width: 460px; height: 304px; position: relative; overflow:hidden; }
	#conteudo { position: absolute; left:0; top:0; }
</pre>
<p>E o javascript (usando jQuery):</p>
<pre class="brush: css; title: ; notranslate">
$(window).load(function(){
	if($('#conteudo').width()&gt;$('#container').width()){
		var pos_x = $('#conteudo').offset().left;
		var container = $('#container').width();
		var conteudo = $('#conteudo').width();
		var diferenca = conteudo - container;
		var metade = - parseInt(diferenca / 2);
		$('#container').mousemove(function(e){
			x = e.pageX - pos_x;
			porcentagemX = parseInt(x / container * 100);
			left = parseInt(0 - (diferenca  / 100 * porcentagemX ));
			$('#conteudo').css('left',left);
		});
		$('#conteudo').animate({ 'left':metade },1000);
	}
});
</pre>
<p>Vou explicar basicamente o que o script faz, linha a linha.</p>
<p><strong>1</strong> &#8211; Faz com que a função seja executada quando terminar de carregar a página;</p>
<p><strong>2</strong> &#8211; Verifica se a área do conteúdo é maior do que a do container pra poder aplicar o efeito;</p>
<p><strong>4 a 8</strong> &#8211; Declara variáveis com os valores dos elementos;</p>
<p><strong>10</strong> &#8211; Escreve uma função que será executada toda que passar o mouse em cima do elemento &#8220;container&#8221;;</p>
<p><strong>11 e 12</strong> &#8211;  Obtem a posicao do mouse (em porcentagem) em relação a div &#8220;container&#8221;, elemplo, se o mouse tiver bem no meio do container, a posicao é de 50%, mas se o mouse tiver bem na direita do container então a posição será próxima a 100%;</p>
<p><strong>13 e 14</strong> &#8211; Com a porcentagem obtida, é só posicionar o left do conteudo. <strong>O conteúdo não precisa ser uma imagem</strong>, pode ter quaisquer elementos dentro.</p>
<p><strong>17</strong> <img src="http://www.tidbits.com.br/download/_images/copy.gif" alt="copy"/> &#8211; Para o usuário perceber o efeito, é legal centralizar o conteúdo, usando o animate do jQuery já mostra o movimento.</p>
<p>Apesar do exemplo bobo aqui nesse post, esse script da liberdade pra fazer <a href="http://www.marcelotas.com.br/" target="_blank" rel="nofollow">efeitos mais complexos</a>. È mais facil trabalhar em cima dessa base do que usar um plugin de jQuery com mil opções.</p>
<p>Pra quem achou legal, pode <a href="http://www.tidbits.com.br/download/exemplos/myParallax/myParallax.zip">fazer o download do exemplo completo</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/myparallax-parallax-com-javascript-com-jquery/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>As melhores ferramentas para validar seu código</title>
		<link>http://www.tidbits.com.br/as-melhores-ferramentas-para-validar-seu-codigo</link>
		<comments>http://www.tidbits.com.br/as-melhores-ferramentas-para-validar-seu-codigo#comments</comments>
		<pubDate>Fri, 21 Nov 2008 09:30:30 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=936</guid>
		<description><![CDATA[O seu browser estar apresentando seu site corretamente não significa que seu código esta correto e também não significa que vai funcionar em mais 40 browsers que são usados atualmente. Programar a interface de um site é bem diferente do que programar numa linguagem server side onde, se você esquecer um &#8220;;&#8221; ou não fechar [...]]]></description>
			<content:encoded><![CDATA[<p>O seu browser estar apresentando seu site corretamente não significa que seu código esta correto e também não significa que vai funcionar em mais 40 browsers que são usados atualmente. Programar a interface de um site é bem diferente do que programar numa linguagem server side onde, se você esquecer um &#8220;;&#8221; ou não fechar um if, seu código nem roda. Programando no lado do cliente, diversos erros de html são &#8220;consertados&#8221; pela maioria dos browsers. Ou seja, você esquece de fechar uma tag, ou coloca um &lt;h1&gt; dentro de um  &lt;a&gt; <strong>no seu browser</strong> e aparece tudo ok, mas é errado.</p>
<p>Ok, mesmo que o site seja testado no Firefox, ie6, ie7, Safari, Chrome e Opera, quem garante que os navegadores Netscape 6.0, Ant Galio 3.1, Blaze 6.0 ou o Playstation 3 5.0 vão interpretar corretamente também?</p>
<p>E é por isso que devemos validar o código. Existem diversas <strong>ferramentas para validação de código</strong>.</p>
<p>A mais importante delas, creio que é o <a href="https://addons.mozilla.org/pt-BR/firefox/addon/249" target="_blank" rel="nofollow">HTML validator</a>, uma extensão de firefox. Além de válidar seu (x)html, ele diz o que está errado e como consertar o que é ótimo pra quem está começando a programar interface.<br />
<img src="http://www.tidbits.com.br/wp-content/uploads/2008/11/html-validator.png" alt="html validator" title="html validator"  /></p>
<p>Para validar CSS, a melhor opção é o <a href="http://jigsaw.w3.org/css-validator" target="_blank" rel="nofollow">CSS validator</a> da W3C. Infelizmente não existe (ou não conheço) nenhuma opção desktop. Mas mesmo assim, vale a pena utilizar.<br />
<img src="http://www.tidbits.com.br/wp-content/uploads/2008/11/css-validator.png" alt="CSS validator" title="CSS validator" /></p>
<p><img src="http://www.tidbits.com.br/download/_images/copy.gif" alt="copy"/>Já o <a href="http://validator.w3.org/checklink" target="_blank" rel="nofollow">link-checker</a> é um validador de links que analisa seu site e procura por links quebrados, muito útil. A análise é BEM completa, e demora muito tempo, afinal ele checa tudo. Analisando a home do TidBits ele demorou 286 segundos e checou mais de 200 arquivos.<br />
<img src="http://www.tidbits.com.br/wp-content/uploads/2008/11/link-checker.png" alt="link checker" title="link checker" /></p>
<p>Outras ferramentas como o <a href="https://addons.mozilla.org/pt-BR/firefox/addon/1843">firebug</a>, ajudam bastante na codificação, principalmente pra detectar erros de JavaScript. E finalmente, para garantir a acessibilidade do seu site, existe diversas opções, duas em português: o <a href="http://www.acessobrasil.org.br/" target="_blank" rel="nofollow">Da Silva</a> e o <a href="http://www.governoeletronico.gov.br/" target="_blank" rel="nofollow">ASES</a> desenvolvido pelo governo eletrônico.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/as-melhores-ferramentas-para-validar-seu-codigo/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>8 erros de CSS que você não deve cometer</title>
		<link>http://www.tidbits.com.br/8-erros-de-css-que-voce-nao-deve-cometer</link>
		<comments>http://www.tidbits.com.br/8-erros-de-css-que-voce-nao-deve-cometer#comments</comments>
		<pubDate>Thu, 13 Nov 2008 13:51:09 +0000</pubDate>
		<dc:creator>Isabela</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[dicas]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Tableless]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=921</guid>
		<description><![CDATA[Inspirada pelo meu último post, e pelo artigo do Glen Stansberry resolvi aproveitar o momento para incentivar a avaliação não só da usabilidade de um site, mas também do CSS. Agradecendo a dica do Jamaica ;) segue a minha lista &#8220;adaptada&#8221; do que eu acho que ninguém deve fazer com o CSS do site: 1. [...]]]></description>
			<content:encoded><![CDATA[<p>Inspirada pelo <a href="http://www.tidbits.com.br/as-10-heuristicas-de-usabilidade-do-nielsen">meu último post</a>, e pelo <a href="http://nettuts.com/articles/web-roundups/are-you-making-these-10-css-mistakes/">artigo do Glen Stansberry</a> resolvi aproveitar o momento para incentivar a avaliação não só da usabilidade de um site, mas também do CSS. Agradecendo a dica do Jamaica ;) segue a minha lista &#8220;adaptada&#8221; do que eu acho que ninguém deve fazer com o CSS do site:</p>
<p><strong>1. Ignorar a compatibilidade de browser</strong><br />
A gente já falou um monte sobre crossbrowser aqui no Tidbits. Já falamos de <a href="http://www.tidbits.com.br/cross-browser-garanta-a-qualidade-do-seu-site-em-todos-os-navegadores">truques para checar se o seu site está compátivel com todos os navegadores</a>,  ensinamos a utilizar os <a href="http://www.tidbits.com.br/css-global-reset-elimine-as-diferencas-entre-browsers">Global Resets para zerar as propriedades automaticamentes setadas pelos browsers</a>, e o Danilo no post anterior falou sobre o <a href="http://www.tidbits.com.br/voce-nao-precisa-de-uma-colecao-de-css-hacks-pra-todos-os-browsers">CSS compatível sem uso de hacks</a>. Com esse material todo, você não pode nem pensar em deixar o seu CSS &#8220;quebrar&#8221;&#8230;</p>
<p><strong>2.  Não validar o HTML e o CSS </strong><br />
Também no post sobre <a href="http://www.tidbits.com.br/cross-browser-garanta-a-qualidade-do-seu-site-em-todos-os-navegadores">garantir a qualidade do seu site em todos os browsers</a>, eu dei o link de ferramentas de validação. Passem por elas para garantir um código semântico!</p>
<p><strong>3.  Não utilizar classes para formatações que se repetem em vários elementos</strong><br />
Se você tem elementos que tem propriedades de formatação iguais, utilize apenas uma class para definir essas propriedades para todos elementos. Se você tem em uma página, por exemplo, todas as fotos e boxes de um site tem borda e flutuam a direita, você pode simplesmente criar uma class para definir esses atributos e invocá-la em todos os elementos que a utilizam. Se, por um acaso, você precisasse mudar a cor da borda, teria que fazer isso em todos os elementos, se não atribuir a propriedade uma única vez.</p>
<p><strong>4.  Utilizar nomeclaturas ruins para classes e ids</strong><br />
Isso pode ser uma questão aparentemente insignificante, mas se você precisar fazer qualquer alteração no CSS depois de um tempo, vai se arrepender amargamente de não ter gastado 2 segundos a mais do seu tempo para pensar em um nome mais descritivo do que #box_top ou .coluna_left. Rótulos orientados à posicionamento ou ao formato do conteúdo dificultam a manutenção e substituição desse CSS. </p>
<p><strong>5.  Usar CSS para tudo</strong><br />
Quando se abandonaram os layouts com tabelas as tabelas ficaram tão mal faladas que até quando se precisa de tabelas, as pessoas tentam fazê-las da maneira mais díficil. O conceito é &#8220;Tableless&#8221; e não &#8220;Tablenone&#8221; &#8211; com o perdão do trocadilho infeliz. Enfim, o HTML precisa ser semântico, e quando você exibe dados em uma tabela, nada mais semântico do que utilizar uma tabela mesmo, não?</p>
<p><strong>6.  Usar CSS inline</strong><br />
Um dos piores erros que se pode cometer, é não se utilizar o conceito de &#8220;layers&#8221; (camadas), na hora de desenvolver uma interface. Na época que eu aprendi a mexer com o Photoshop, eu levei um tempo até perceber o qual importante era esse conceito, de manter cada coisa, em um plano diferenciado, e como isso facilitava a aplicação, manutenção e alteração de qualquer erros. Esse conceito é igualmente aplicável para o CSS, mantenha ele sempre em um arquivo externo. Um dos principais problemas remete ao item 3 dessa lista: com o CSS inline, você precisaria atribuir os valores para cada elemento individualmente, o que se transformaria em um caos, quando precisasse fazer modificações no layout. </p>
<p><strong>7.  Carregar muitos arquivos de CSS</strong><br />
Dividir o conteúdo do CSS em arquivos separados, facilita a manutenção &#8211; até certo ponto. Se você divide demais o CSS, pode acabar dificultando não só a manutenção, pela dificuldade de encontrar o arquivo que exatamente está procurando, como também o carregamento da página. Arquivos de CSS são bem leves (em sua maioria), o problema é que muitas conexões com o servidor, que precisam ser feitas para cada arquivo de estilo que for baixado, normalmente demoram mais que o próprio download. Normalmente, eu e o Danilo utilizamos um arquivo <em>default.css</em> setando propriedades que replicam em todo o site, por exemplo o CSS do Header, Footer, Menu lateral, e coisas do tipo. E criamos para cada área, o arquivo <em>nomedaarea.css</em> com as propriedades específicas da página, ou por exemplo um <em>conteudo.css</em> com as propriedades de css de páginas geradas dinamicamente. </p>
<p><strong>8. Não utilizar o Firebug para acelerar os ajustes do css</strong><br />
O Firebug é uma ferramenta mais importante que o editor de códigos. Se um layout está com problemas de posicionamento, ou você está com dificuldades de entender porque uma div está herdando um padding fantasma de algum lugar, o Firebug ajuda você identificar quais são as propriedades de css que estão influenciando aquele elemento. Além do CSS, ele também facilita visualizar a estrutura do HTML, e identificar possíveis erros.</p>
<p>Acho que seguindo essa lista, já é possível otimizar o tempo de desenvolvimento, e ao mesmo tempo fazer um CSS de melhor qualidade. E se alguém se lembrar de algum outro erro que também poderia ser evitado, fique a vontade para comentar, e construirmos nossa lista juntos :)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/8-erros-de-css-que-voce-nao-deve-cometer/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Apostila e material de estudo sobre padrões web em português</title>
		<link>http://www.tidbits.com.br/apostila-e-material-de-estudo-sobre-padroes-web-em-portugues</link>
		<comments>http://www.tidbits.com.br/apostila-e-material-de-estudo-sobre-padroes-web-em-portugues#comments</comments>
		<pubDate>Fri, 07 Nov 2008 01:06:49 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[Cursos]]></category>
		<category><![CDATA[Livros]]></category>
		<category><![CDATA[Usabilidade]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento web]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[web semântica]]></category>
		<category><![CDATA[Web standards]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=882</guid>
		<description><![CDATA[Recentemente o site do Governo Eletrônico lançou um projeto implementar padrões web no site do governo. E inclusive lançou uma cartilha de codificação para auxiliar as administrações públicas. O objetivo da cartilha é: Estabelecer padrões de qualidade de uso, desenho, arquitetura de informação e navegação; Estabelecer um fluxo de criação, desenvolvimento e manutenção na gestão [...]]]></description>
			<content:encoded><![CDATA[<p>Recentemente o site do <a href="http://www.governoeletronico.gov.br/acoes-e-projetos/padroes-brasil-e-gov" target="_blank"> Governo Eletrônico </a> lançou um projeto implementar padrões web no site do governo. E inclusive lançou uma cartilha de codificação para auxiliar as administrações públicas.</p>
<p>O objetivo da cartilha é:</p>
<ul>
<li>Estabelecer padrões de qualidade de uso, desenho, arquitetura de informação e navegação;</li>
<li>Estabelecer um fluxo de criação, desenvolvimento e manutenção na gestão dos sítios governamentais;</li>
<li>Consolidar a acessibilidade;</li>
<li>Criar artefatos de acordo com os padrões estabelecidos pelo W3C.</li>
</ul>
<p><img src="http://www.tidbits.com.br/download/_images/copy.gif" alt="copy"/>A apostila pode ser lida por qualquer desenvolvedor web, pois fala de padrões web em geral e não de sites do governo.</p>
<p><a href="http://www.tidbits.com.br/download/docs/padroes-brasil-e-gov.pdf"> Clique aqui para baixar a cartilha. </a></p>
<p>Outra coisa que chamou a atenção essa semana, foi o blog do Danilo Nunes, ele está traduzindo <a href="http://danillonunes.net/curriculo-dos-padroes-web/" target="_blank">um curso sobre padrões web</a> que funcionários da Opera fizeram pra implementar nas universidades americanas, um projeto bem legal.</p>
<p>O curso (original, em inglês) tem 50 artigos, cada um bem detalhado. O Danilo Nunes disse que vai traduzir um por semana.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/apostila-e-material-de-estudo-sobre-padroes-web-em-portugues/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>CSS background-image em uma imagem</title>
		<link>http://www.tidbits.com.br/css-background-image-em-uma-imagem</link>
		<comments>http://www.tidbits.com.br/css-background-image-em-uma-imagem#comments</comments>
		<pubDate>Sat, 01 Nov 2008 02:30:36 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Parallax]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=839</guid>
		<description><![CDATA[Imagine uma imagem grande, que demora pra ser carregada. E se colocar um loading na imagem? É bem simples: E no css : Um outro exemplo do que se pode fazer com isso, é colocar níveis de profundidade, veja o exemplo abaixo: Esse não foi feito por mim, eu achei na internet mas infelizmente não [...]]]></description>
			<content:encoded><![CDATA[<p>Imagine uma imagem grande, que demora pra ser carregada.<br />
E se colocar um loading na imagem?<br />
É bem simples:</p>
<pre class="brush: xml; title: ; notranslate">
&lt;img src=&quot;imagemPesada.jpg&quot; alt=&quot;alt da imagem&quot; id=&quot;imagemPrincipal&quot;/&gt;
</pre>
<p>E no css : </p>
<pre class="brush: css; title: ; notranslate">
img#imagemPrincipal{
	background: url('loading.gif') no-repeatcenter center;
}
</pre>
<p>Um outro exemplo do que se pode fazer com isso, é colocar níveis de profundidade, veja o exemplo abaixo:</p>
<p><iframe name="typeface" id="typeface" width="460" height="220" frameborder="0" scrolling="no" src="http://www.tidbits.com.br/download/exemplos/image_background/background_image.html"></iframe>	</p>
<p>Esse não foi feito por mim, eu achei na internet mas infelizmente não sei quem fez para dar os créditos, se alguém souber, avise-me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/css-background-image-em-uma-imagem/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>35 Cheat Sheets para Desenvolvedores Web</title>
		<link>http://www.tidbits.com.br/35-cheat-sheets-para-desenvolvedores-web</link>
		<comments>http://www.tidbits.com.br/35-cheat-sheets-para-desenvolvedores-web#comments</comments>
		<pubDate>Sat, 13 Sep 2008 15:24:08 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[Livros]]></category>
		<category><![CDATA[ASP]]></category>
		<category><![CDATA[Cheat Sheets]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[Microformats]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[Mootols]]></category>
		<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Regular Expressions]]></category>
		<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=262</guid>
		<description><![CDATA[Cheat Sheets são aquelas documentações rápidas e muito úteis para auxiliar a lembrar a sintaxe de alguma função / elemento ou para ter uma referência simples e rápida da linguagem. Segue lista (em ordem alfabética) dos cheat sheets para download ASP / VBScript Cheat Sheet CSS Shorthand Cheat Sheet CSS Cheat Sheet CSS Cheat Sheet [...]]]></description>
			<content:encoded><![CDATA[<p>Cheat Sheets são aquelas documentações rápidas e muito úteis para auxiliar a lembrar a sintaxe de alguma função / elemento ou para ter uma referência simples e rápida da linguagem.</p>
<p><img title="Cheat Sheets" src="http://www.tidbits.com.br/wp-content/uploads/2008/09/javascript_v1_1.png" alt="Cheat Sheets" width="142" height="191" /> <img title="Cheat Sheets" src="http://www.tidbits.com.br/wp-content/uploads/2008/09/microformats_v1_1.png" alt="Cheat Sheets" width="142" height="191" /> <img title="Cheat Sheets" src="http://www.tidbits.com.br/wp-content/uploads/2008/09/mysql_v1_1.png" alt="Cheat Sheets" width="142" height="191" /></p>
<p>Segue lista (em ordem alfabética) dos cheat sheets para <a href="http://www.tidbits.com.br/download/docs/cheatsheets.zip">download</a></p>
<p>ASP / VBScript Cheat Sheet<br />
CSS Shorthand Cheat Sheet<br />
CSS Cheat Sheet<br />
CSS Cheat Sheet (V1)<br />
CSS Cheat Sheet (V2)<br />
CSS Level 1 Quick Reference<br />
CSS Level 2 Quick Reference<br />
CSS 2.1 Quick Reference Card<br />
CSS 2 Reference Guide<br />
HTML Help Sheet<br />
HTML Cheat Sheet<br />
HTML Character Entities Cheat Sheet<br />
JavaScript Cheat Sheet<br />
JavaScript Reference Card<br />
JavaScript and Browser Objects Quick Reference<br />
JavaScript &#8211; DOM &#8211; Cheatsheet<br />
JavaScript Quick Reference Card &#8211; Cheatsheet<br />
jQuery Cheatsheet<br />
jQuery 1.2 Cheat Sheet<br />
jQuery Visual Map<br />
Microformats Cheat Sheet<br />
mod_rewrite Cheat Sheet (V1)<br />
mod_rewrite Cheat Sheet (V2)<br />
Mootools 1.2 cheat sheet<br />
MySQL Cheat Sheet<br />
PHP Cheat Sheet (V1)<br />
PHP Cheat Sheet (V2)<br />
Regular Expressions Cheat Sheet (V1)<br />
Regular Expressions Cheat Sheet (V2)<br />
RGB Hex Colour Chart<br />
Ruby on Rails Cheat Sheet<br />
SEO Web Developer Cheat Sheet<br />
SQL Server Cheat Sheet<br />
Subversion Cheat Sheet<br />
WordPress Help Sheet</p>
<p><a href="http://www.tidbits.com.br/download/docs/cheatsheets.zip">A coleção completa pode ser baixada aqui.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/35-cheat-sheets-para-desenvolvedores-web/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>20 e-books gratuitos em CHM para desenvolvimento web</title>
		<link>http://www.tidbits.com.br/20-e-books-gratuitos-em-chm-para-desenvolvimento-web</link>
		<comments>http://www.tidbits.com.br/20-e-books-gratuitos-em-chm-para-desenvolvimento-web#comments</comments>
		<pubDate>Fri, 12 Sep 2008 17:54:34 +0000</pubDate>
		<dc:creator>Danilo</dc:creator>
				<category><![CDATA[Livros]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby On Rails]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://www.tidbits.com.br/?p=256</guid>
		<description><![CDATA[Uma coleção de livros e manuais para diversas linguagens de programação. Ajax &#8211; Professional Ajax (2006).chm Ajax For Web Application Developers (2006).chm Ajax Hacks &#8211; Tips &#38; Tools For Creating Responsive Websites (2006).chm Firefox Hacks &#8211; Tips &#38; Tools For Next-Generation Web Browsing (2005).chm HTML &#38; XHTML &#8211; The Definitive Guide, 6th Edition (2006).chm JavaScript [...]]]></description>
			<content:encoded><![CDATA[<p>Uma coleção de livros e manuais para diversas linguagens de programação.</p>
<p>Ajax &#8211; Professional Ajax (2006).chm<br />
Ajax For Web Application Developers (2006).chm<br />
Ajax Hacks &#8211; Tips &amp; Tools For Creating Responsive Websites (2006).chm<br />
Firefox Hacks &#8211; Tips &amp; Tools For Next-Generation Web Browsing (2005).chm<br />
HTML &amp; XHTML &#8211; The Definitive Guide, 6th Edition (2006).chm<br />
JavaScript &#8211; Learning JavaScript (2006).chm<br />
JavaScript &#8211; Phrasebook &#8211; Essential Code And Commands (2006).chm<br />
JavaServer Pages, 2nd Edition (2003).chm<br />
jQuery UI Reference 1.2.chm<br />
jQuery.chm<br />
MySQL &#8211; MySQL Certification Study Guide.chm<br />
MySQL &#8211; Tutorial.chm<br />
Perl &#8211; Learning Perl 4th Edition 2005.chm<br />
PHP &#8211; Advanced PHP Programming.chm<br />
PHP &#8211; Cookbook.chm<br />
PHP &#8211; Functions Essential Reference.chm<br />
Ruby &#8211; Cookbook 2006.chm<br />
Ruby On Rails &#8211; Rubyisms in Rails.chm<br />
Ruby On Rails &#8211; Up and Running.chm<br />
XML Hacks &#8211; 100 Industrial-Strength Tips &amp; Tools (2004).chm</p>
<p><a href="http://www.daniloaugusto.com.br/desenvolvimento/download/chm.zip">Você pode baixar a coleção aqui.</a></p>
<p>Se não achou o que queria, tente encontrar nos sites:</p>
<p><a rel="nofollow" href="http://www.freebookspedia.com/category/web-development" target="_blank">http://www.freebookspedia.com/category/web-development</a><br />
<a rel="nofollow" href="http://www.itstudy8.org/jsp.asp" target="_blank">http://www.itstudy8.org/jsp.asp</a><br />
<a rel="nofollow" href="http://www.akae.cn/ftp/mirror/202.96.64.144/books/" target="_blank">http://www.akae.cn/ftp/mirror/202.96.64.144/books/</a></p>
<p>Thanks to André e <a href="http://clauber.coffeebreakers.org" target="_blank">Clauber</a> pelos livros.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tidbits.com.br/20-e-books-gratuitos-em-chm-para-desenvolvimento-web/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

