<?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>RamonPage.com . Web na ponta do lápis &#187; CSS</title>
	<atom:link href="http://ramonpage.com/category/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://ramonpage.com</link>
	<description>arte, desenvolvimento, design, programação, webstandards, acessibilidade, usabilidade, tipografia, UX, UI, IA</description>
	<lastBuildDate>Tue, 15 May 2012 17:44:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>EDTED 2010 &#8211; A Mágica dos CSS Sprites</title>
		<link>http://ramonpage.com/2010/03/25/edted-2010-a-magica-dos-css-sprites/</link>
		<comments>http://ramonpage.com/2010/03/25/edted-2010-a-magica-dos-css-sprites/#comments</comments>
		<pubDate>Thu, 25 Mar 2010 03:50:46 +0000</pubDate>
		<dc:creator>RamonPage</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Eventos]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[#horaextra]]></category>
		<category><![CDATA[css sprites]]></category>
		<category><![CDATA[edted]]></category>
		<category><![CDATA[lightning talk]]></category>

		<guid isPermaLink="false">http://ramonpage.com/?p=482</guid>
		<description><![CDATA[No último sábado (20/03) aconteceu o 15º EDTED, edição Rio. O evento foi sensacional! Eu e a galera do #horaextra organizamos as Lightning Talks e as sessões de Dojo. O pessoal do Dojorio e da PythOnRio completaram a turma. Para quem viu e quer saber mais ou para quem não viu, segue a lightning talk [...]]]></description>
			<content:encoded><![CDATA[<p>No último sábado (20/03) aconteceu o 15º <abbr title="Encontro de Design e Tecnologia Digital">EDTED</abbr>, edição <a href="http://www.edted.com.br/edted-15/index.php/1-074-cariocas-obrigada-pela-presenca/" rel="external" class="external-link">Rio</a>. O evento foi sensacional!</p>
<p>Eu e a galera do <a href="http://horaextra.org" rel="external" class="external-link">#horaextra</a> organizamos as Lightning Talks e as sessões de Dojo. O pessoal do <a href="http://dojorio.wordpress.com/" rel="external" class="external-link">Dojorio</a> e da <a href="http://pythonrio.org/" rel="external" class="external-link">PythOnRio</a> completaram a turma.</p>
<p>Para quem viu e quer saber mais ou para quem não viu, segue a lightning talk que eu apresentei:</p>
<ul>
<li><a href="http://www.slideshare.net/ramonpg/a-mgica-dos-css-sprites" rel="external" class="external-link"><strong>A Mágica dos CSS Sprites</strong></a> (slideshare)</li>
<li><a href="http://ramonpage.com/wp-content/uploads/magic.zip">Baixe o código exemplo</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://ramonpage.com/2010/03/25/edted-2010-a-magica-dos-css-sprites/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Grid layout para formulários com botões arredondados</title>
		<link>http://ramonpage.com/2008/05/04/grid-layout-para-formularios-com-botoes-arredondados/</link>
		<comments>http://ramonpage.com/2008/05/04/grid-layout-para-formularios-com-botoes-arredondados/#comments</comments>
		<pubDate>Sun, 04 May 2008 18:28:35 +0000</pubDate>
		<dc:creator>RamonPage</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>

		<guid isPermaLink="false">http://ramonpage.com/2008/05/04/grid-layout-para-formularios-com-botoes-arredondados/</guid>
		<description><![CDATA[Estive procurando por uma solução para esilizar botões de formulário, sem comprometer a semântica destes. Na ma.gnolia eu já tinha uns 4 exemplos. São eles: 1) Scalable CSS Buttons Using PNG and Background&#160;Colors, 2) Styling the button element with sliding doors, 3) How to make sexy buttons with CSS, 4) Simple Round CSS Links ( [...]]]></description>
			<content:encoded><![CDATA[<p>Estive procurando por uma solução para esilizar botões de formulário, sem comprometer a semântica destes. Na <a href="http://ma.gnolia.com/" rel="external" class="external-link">ma.gnolia</a> eu já tinha uns 4 exemplos. São eles: 1) <a href="http://monc.se/kitchen/59/scalable-css-buttons-using-png-and-background-colors/" rel="external" class="external-link">Scalable CSS Buttons Using PNG and Background&nbsp;Colors</a>, 2) <a href="http://www.filamentgroup.com/lab/styling_the_button_element_with_sliding_doors/" rel="external" class="external-link">Styling the button element with sliding doors</a>, 3) <a href="http://www.oscaralexander.com/tutorials/how-to-make-sexy-buttons-with-css.html" rel="external" class="external-link">How to make sexy buttons with CSS</a>, 4) <a href="http://www.hedgerwow.com/360/dhtml/css-round-button/demo.php" rel="external" class="external-link">Simple Round CSS Links ( Wii Buttons )</a>.</p>
<p>Tirando algumas restrições, como o uso de javascript em alguns casos e <code>&lt;span&gt;</code> em outros, fiz uma mistura entre estas soluções e adicionei ao recurso já criado <a href="http://ramonpage.com/2007/05/01/grid-layout-para-formularios/" rel="external">Grid layout para formulários</a>.</p>
<p><a href="http://ramonpage.com/examples/grid-forms-rounded-buttons/">Veja um exemplo</a>.</p>
<p><span id="more-58"></span></p>
<h3>Peneirando&#8230;</h3>
<p>As soluções <a href="http://www.filamentgroup.com/lab/styling_the_button_element_with_sliding_doors/" rel="external" class="external-link">[2]</a> e <a href="http://www.oscaralexander.com/tutorials/how-to-make-sexy-buttons-with-css.html" rel="external" class="external-link">[3]</a> foram as que mais me agradaram, porém tinham o inconveniente do uso de <code>&lt;span&gt;</code> na marcação. Para não perder a viagem, gostei muito do estilo dos <a href="http://www.hedgerwow.com/360/dhtml/css-round-button/demo.php" rel="external" class="external-link">WII Buttons</a> e usei a imagem deles como exemplo para a minha solução.</p>
<h3>Criando os botões</h3>
<p>A solução foi simples, pois o grid layout já tinha o <code>&lt;label&gt;</code> como container dos botões de submissão. Resolvi, então, explorar este ponto para gerar os botões arredondados.</p>
<p>Basicamente, criei apenas uma classe adicional para os labels que possuem botões. Chamei-a de <code>lblbutton</code>. A criação ficou da seguinte forma:</p>
<h4>Antes&#8230;</h4>
<ol class="code">
<li><code>&lt;label class="small"&gt;&lt;input type="submit" class="button" value="Enviar"  /&gt;&lt;/label&gt;</code></li>
</ol>
<h4>&#8230; Depois</h4>
<ol class="code">
<li><code>&lt;label class="small <strong>lblbutton</strong>"&gt;&lt;input type="submit" class="button" value="Enviar"  /&gt;&lt;/label&gt;</code></li>
</ol>
<h4>E no estilo&#8230;</h4>
<ol class="code">
<li><code>.lblbutton {</code></li>
<li class="tab1"><code>margin: 0;</code></li>
<li class="tab1"><code>padding: 0 0 0 8px;</code></li>
<li class="tab1"><code>background: #fff url(bg-button.gif) no-repeat 0 0;</code></li>
<li><code>}</code></li>
<li><code>&nbsp;</code></li>
<li><code>.lblbutton .button {</code></li>
<li class="tab1"><code>border: 0;</code></li>
<li class="tab1"><code>padding: 0 8px 0 0;</code></li>
<li class="tab1"><code>background: #fff url(bg-button.gif) no-repeat top right;</code></li>
<li class="tab1"><code>height: 24px;</code></li>
<li><code>}</code></li>
</ol>
<p>Então, é isso! <em>Enjoy</em>! <strong>:)</strong></p>
<p><a href="http://gridforms.googlecode.com/files/gridforms_rounded_buttons.zip" class="download">Baixe os arquivos via Google Code</a></p>
]]></content:encoded>
			<wfw:commentRss>http://ramonpage.com/2008/05/04/grid-layout-para-formularios-com-botoes-arredondados/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nasce um framework &#8211; Blueprint</title>
		<link>http://ramonpage.com/2007/08/11/nasce-um-framework-blueprint/</link>
		<comments>http://ramonpage.com/2007/08/11/nasce-um-framework-blueprint/#comments</comments>
		<pubDate>Sun, 12 Aug 2007 01:40:37 +0000</pubDate>
		<dc:creator>RamonPage</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[Tipografia]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://ramonpage.com/2007/08/11/nasce-um-framework-blueprint/</guid>
		<description><![CDATA[Quer uma boa referência para desenvolver layouts para web com CSS de qualidade? Dos grids à tipografia, Blueprint é a pedida da vez. Analizei a estrutura dos arquivos e fiquei entusiasmado. O projeto Blueprint é, sem dúvida, uma das melhores referências livres de CSS da atualidade. O projeto é dividido nas seções que se seguem: [...]]]></description>
			<content:encoded><![CDATA[<p>Quer uma boa referência para desenvolver layouts para web com <abbr title="Cascading Style Sheets">CSS</abbr> de qualidade? Dos grids à tipografia, <a href="http://code.google.com/p/blueprintcss/" class="external-link" rel="external">Blueprint</a> é a pedida da vez.</p>
<p><span id="more-51"></span></p>
<p>Analizei a estrutura dos arquivos e fiquei entusiasmado. O projeto Blueprint é, sem dúvida, uma das melhores referências livres de <abbr title="Cascading Style Sheets">CSS</abbr> da atualidade.</p>
<p>O projeto é dividido nas seções que se seguem:</p>
<ul>
<li>Estilização de versões para impressão;</li>
<li>Estilos para botões;</li>
<li>Grid Layouts;</li>
<li>Tipografia.</li>
</ul>
<p>Planos futuros:</p>
<ul>
<li>Suporte a PNG para IE 5.5+;</li>
<li>Desenho de layouts líquidos.</li>
</ul>
<p>Vale a pena conferir, novamente, <a href="http://code.google.com/p/blueprintcss/" class="external-link" rel="external">o link</a>.</p>
<p>Blueprint é uma ótima solução para desenvolvedores experientes padronizarem seus trabalhos e para iniciantes pegarem o foco do que é, efetivamente, desenvolver para web semanticamente. <strong>:)</strong>.</p>
]]></content:encoded>
			<wfw:commentRss>http://ramonpage.com/2007/08/11/nasce-um-framework-blueprint/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Get Naked</title>
		<link>http://ramonpage.com/2007/04/05/get-naked/</link>
		<comments>http://ramonpage.com/2007/04/05/get-naked/#comments</comments>
		<pubDate>Thu, 05 Apr 2007 03:43:14 +0000</pubDate>
		<dc:creator>RamonPage</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Pessoal]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://ramonpage.com/2007/04/05/get-naked/</guid>
		<description><![CDATA[Não, não&#8230; Não há nenhum problema com design da minha página. Hoje é dia de ficar nu! Mas só até 00:00hs. :P Atualização 2007-04-06 00:52 hs: Pronto! Vestido novamente. Até o próximo ano. :P]]></description>
			<content:encoded><![CDATA[<p>Não, não&#8230; Não há nenhum problema com design da minha página.</p>
<p>Hoje é dia de <a href="http://naked.dustindiaz.com/" rel="external" class="external-link">ficar nu!</a></p>
<p>Mas só até 00:00hs. <strong>:P</strong></p>
<p class="update"><strong>Atualização 2007-04-06 00:52 hs:</strong> Pronto! Vestido novamente. Até o próximo ano. <strong>:P</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://ramonpage.com/2007/04/05/get-naked/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sombra em imagem com DOM e CSS</title>
		<link>http://ramonpage.com/2006/11/05/sombra-em-imagem-com-dom-e-css/</link>
		<comments>http://ramonpage.com/2006/11/05/sombra-em-imagem-com-dom-e-css/#comments</comments>
		<pubDate>Sun, 05 Nov 2006 22:01:56 +0000</pubDate>
		<dc:creator>RamonPage</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Desenvolvimento]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[Lab]]></category>

		<guid isPermaLink="false">http://ramonpage.com/2006/11/05/sombra-em-imagem-com-dom-e-css/</guid>
		<description><![CDATA[Image drop shadow with DOM and CSS Inspirado pelos artigos do A List Apart, há um tempo venho pensando numa solução para criar sombras em imagens sem atrapalhar minha semântica, ou seja, com o mínimo de manipulação da marcação em torno da imagem. Depois de alguns estudos e testes, cheguei num resultado onde é necessário [...]]]></description>
			<content:encoded><![CDATA[<h3 class="lang-en" lang="en">Image drop shadow with DOM and CSS</h3>
<p>Inspirado <a href="http://alistapart.com/articles/cssdropshadows/" class="external-link">pelos</a> <a href="http://alistapart.com/articles/cssdrop2/" class="external-link">artigos</a> do <a href="http://alistapart.com/" class="external-link">A List Apart</a>, há um tempo venho pensando numa solução para criar sombras em imagens sem atrapalhar minha semântica, ou seja, com o mínimo de manipulação da marcação em torno da imagem. Depois de alguns estudos e testes, cheguei num resultado onde é necessário utilizar <em>apenas</em> uma classe para criar as sombras.</p>
<p class="lang-en" lang="en">Inspired by two articles of <strong>A List Apart</strong>, I come thinking about a solution to create drop shadows on images without confuse my semantic, that is, with the minimum of manipulation in markup around the image. After some studies and tests, I arrived in a result where it&#8217;s necessary to use only one class to create the drop shadows.</p>
<p><span id="more-24"></span></p>
<h3>Como funciona</h3>
<h3 class="lang-en" lang="en">How it works</h3>
<p>O conceito da criação das sombras é o seguinte:</p>
<ol>
<li>Adicionar um <code>div</code>, via <abbr title="Document Object Model">DOM</abbr>, em volta da imagem;</li>
<li>Setar este <code>div</code> com a mesma largura da imagem, para que a sombra fique proporcional à largura da mesma;</li>
<li>Inserir um background que simule uma sombra neste <code>div</code> via <abbr title="Cascading Style Sheets">CSS</abbr>;</li>
<li>Deslocar, levemente, a imagem para obter o tamanho de sombra desejado, também via <abbr title="Cascading Style Sheets">CSS</abbr>.</li>
<li>Pronto!</li>
</ol>
<ol class="lang-en" lang="en">
<li>Insert a <code>div</code>, with <abbr title="Document Object Model">DOM</abbr>, around the image;</li>
<li>Set this <code>div</code> with the same width of the image;</li>
<li>Insert a shadow background on <code>div</code> with <abbr title="Cascading Style Sheets">CSS</abbr>;</li>
<li>Dislocate, lightly, the image to get the desired size of drop shadow, also with <abbr title="Cascading Style Sheets">CSS</abbr>.</li>
<li>That&#8217;s all!</li>
</ol>
<p>Veja um exemplo:</p>
<p class="lang-en" lang="en">Take a look:</p>
<ol class="code">
<li><code>&lt;img src="../avatar-80x80.gif" class="shadow" /&gt;</code></li>
</ol>
<p>Resulta em:</p>
<p class="lang-en" lang="en">Results in:</p>
<p><img src="http://ramonpage.com/wp-content/themes/pagev2/pics/avatar-80x80.gif" class="shadow" /></p>
<h3>Os códigos</h3>
<h3 class="lang-en" lang="en">The codes</h3>
<p>Criando o container, via DOM, para receber a sombra da imagem.</p>
<ol class="code">
<li><code>setImageDropShadow = function (searchClass,tag) {</code></li>
<li><code>&nbsp;</code></li>
<li class="tab1"><code>var browser=navigator.appName;</code></li>
<li class="tab1"><code>var agent = navigator.userAgent;</code></li>
<li class="tab1"><code>var b_version=navigator.appVersion;</code></li>
<li class="tab1"><code>var version=parseFloat(b_version);</code></li>
<li><code>&nbsp;</code></li>
<li class="tab1"><code>var opera = false</code></li>
<li><code>&nbsp;</code></li>
<li class="tab1"><code>if(agent.indexOf("Opera")!=-1){</code></li>
<li class="tab2"><code>var versionindex=agent.indexOf("Opera")+6;</code></li>
<li class="tab3"><code>if (parseInt(agent.charAt(versionindex))>=8)</code></li>
<li class="tab4"><code>opera = true;</code></li>
<li class="tab1"><code>}</code></li>
<li><code>&nbsp;</code></li>
<li class="tab1"><code>var els = document.getElementsByTagName(tag); </code></li>
<li class="tab1"><code>var pattern = new RegExp("\\b"+searchClass+"\\b");</code></li>
<li class="tab1"><code>for (i = 0; i < els.length; i++) {</code></li>
<li class="tab2"><code>if ( pattern.test(els[i].className) ) {</code></li>
<li class="tab3"><code>var NewDiv = document.createElement('div');</code></li>
<li class="tab3"><code>NewDiv.className = "shadow-container";</code></li>
<li><code>&nbsp;</code></li>
<li class="tab3"><code>if (((browser=="Microsoft Internet Explorer") &#038;&#038; (version>=4) &#038;&#038; (!agent.indexOf("MSIE 7") != -1)) || (opera)) { // Fix IE 6 and Opera width problem</code></li>
<li class="tab4"><code>NewDiv.style.width = (els[i].width - 4).toString() + "px";</code></li>
<li class="tab3"><code>} else {</code></li>
<li class="tab4"><code>NewDiv.style.width = (6 + els[i].width).toString() + "px";</code></li>
<li class="tab3"><code>}</code></li>
<li><code>&nbsp;</code></li>
<li class="tab3"><code>var parentDiv = els[i].parentNode;</code></li>
<li class="tab3"><code>parentDiv.insertBefore(NewDiv, els[i]);</code></li>
<li class="tab3"><code>NewDiv.appendChild(els[i]);</code></li>
<li class="tab2"><code>}</code></li>
<li class="tab1"><code>}</code></li>
<li><code>}</code></li>
<li><code>&nbsp;</code></li>
<li><code>window.onload = function() {</code></li>
<li class="tab1"><code>setImageDropShadow('shadow','img');</code></li>
<li><code>};</code></li>
</ol>
<p>Estilizando a sombra. </p>
<ol class="code">
<li><code>.shadow-container {</code></li>
<li class="tab1"><code>position: relative;</code></li>
<li class="tab1"><code>background: url(bg-small-shadow.png);</code></li>
<li><code>}</code></li>
<li><code>&nbsp;</code></li>
<li><code>.shadow-container img {</code></li>
<li class="tab1"><code>position: relative;</code></li>
<li class="tab1"><code>display: block;</code></li>
<li class="tab1"><code>top: -3px;</code></li>
<li class="tab1"><code>left: -3px;</code></li>
<li class="tab1"><code>margin: 0;</code></li>
<li class="tab1"><code>padding: 2px;</code></li>
<li class="tab1"><code>background: #fff;</code></li>
<li class="tab1"><code>border: 1px solid #e1e1e1;</code></li>
<li><code>}</code></li>
</ol>
<p>Para criar a sombra, utilizei uma imagem de 20x20px, em tom de cinza claro (#d8d8d8) e 50% de transparência. <a href="http://ramonpage.com/wp-content/themes/pagev2/pics/bg-small-shadow.png">A imagem pode ser vista aqui!</a></p>
<p class="lang-en" lang="en"><a href="http://ramonpage.com/wp-content/themes/pagev2/pics/bg-small-shadow.png">Get the drop shadow background here!</a></p>
<p>Detalhe importante! A parte em negrito, a seguir, é a que determina a distância da sombra em relação à imagem. Quanto menores os valores inseridos para <code>top</code> e <code>left</code>, maior será a distância da sombra em relação à imagem.</p>
<p class="lang-en" lang="en">Important detail! The lines in boldface, below, are that determine the distance between the image and the drop shadow. Change the values for better use.</p>
<ol class="code">
<li><code>.shadow-container img {</code></li>
<li class="tab1"><code>position: relative;</code></li>
<li class="tab1"><code>display: block;</code></li>
<li class="tab1"><code><strong>top: -3px;</strong></code></li>
<li class="tab1"><code><strong>left: -3px;</strong></code></li>
<li class="tab1"><code>margin: 0;</code></li>
<li class="tab1"><code>padding: 2px;</code></li>
<li class="tab1"><code>background: #fff;</code></li>
<li class="tab1"><code>border: 1px solid #e1e1e1;</code></li>
<li><code>}</code></li>
</ol>
<h3>Tudo o que você precisa para usar sombras em suas imagens</h3>
<h3 class="lang-en" lang="en">All you need to work with it</h3>
<ul>
<li><a href="http://ramonpage.com/wp-content/themes/pagev2/js/image-drop-shadow.js">image-drop-shadow.js</a></li>
<li><a href="http://ramonpage.com/wp-content/uploads/image-drop-shadow.css">image-drop-shadow.css</a></li>
<li><a href="http://ramonpage.com/wp-content/themes/pagev2/pics/bg-small-shadow.png">bg-small-shadow.png</a></li>
</ul>
<p>Esta solução foi testada no <strong>Opera 9.x</strong>, <strong>Firefox 1.5.0.7</strong>, <strong>IE 6.0</strong>, <strong>IE 7.0 RC1</strong> e <strong>Safari 2.0.4</strong>. </p>
<p>Reportes de erros, bugs, e, pricipalmente, sugestões são muito bem-vindos. <strong>;)</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://ramonpage.com/2006/11/05/sombra-em-imagem-com-dom-e-css/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>O vício dos divs</title>
		<link>http://ramonpage.com/2006/05/31/o-vicio-dos-divs/</link>
		<comments>http://ramonpage.com/2006/05/31/o-vicio-dos-divs/#comments</comments>
		<pubDate>Wed, 31 May 2006 05:38:28 +0000</pubDate>
		<dc:creator>RamonPage</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[XHTML]]></category>

		<guid isPermaLink="false">http://ramonpage.com/?p=5</guid>
		<description><![CDATA[Para quem está iniciando no mundo do tableless, nada melhor do que pensar nos seus layouts completamente sem tabelas. Mas isso pode se tornar um vício, e um recurso que pode e deve ser utilizado em XHTML acaba entrando no esquecimento. Pensando nisso, um dos meus últimos projetos foi efetuado completamente sem tabelas (até para [...]]]></description>
			<content:encoded><![CDATA[<p>Para quem está iniciando no mundo do <em>tableless</em>, nada melhor do que pensar nos seus layouts completamente sem tabelas. Mas isso pode se tornar um vício, e um recurso que <em>pode</em> e <em>deve</em> ser utilizado em <abbr title="Extensible HyperText Markup Language">XHTML</abbr> acaba entrando no esquecimento.</p>
<p>Pensando nisso, um dos meus últimos projetos foi efetuado completamente sem tabelas (até para textos tabulados). O resultado foi interessante, mas ainda assim não foi possível chegar à todos os recursos (como larguras flexíveis) que as tabelas proporcionam. Caso eu fosse tentar me aventurar nisso, com certeza perderia um pouco de tempo, <em>em vão</em>.</p>
<p><span id="more-5"></span></p>
<p>Darei um exemplo. Ele funciona bem no <abbr title="Internet Explorer">IE</abbr>, Opera e Firefox (ou firer0x, apelido carinhoso).</p>
<h3>O código</h3>
<p>Definindo as colunas e células da nossa &#8220;tabela&#8221;.</p>
<p>Definindo o título:</p>
<ol class="code">
<li><code>&lt;div class="row-order"&gt;</code></li>
<li class="tab1"><code>&lt;div class="col-title-1"&gt;Código&lt;/div&gt;</code></li>
<li class="tab1"><code>&lt;div class="col-title-2"&gt;Produto&lt;/div&gt;</code></li>
<li class="tab1"><code>&lt;div class="col-title-3"&gt;Quantidade&lt;/div&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
</ol>
<p>Definindo o conteúdo:</p>
<ol class="code">
<li><code>&lt;div class="row-order"&gt;</code></li>
<li class="tab1"><code>&lt;div class="col-1"&gt;102&lt;/div&gt;</code></li>
<li class="tab1"><code>&lt;div class="col-2"&gt;Arroz&lt;/div&gt;</code></li>
<li class="tab1"><code>&lt;div class="col-3"&gt;1kg&lt;/div&gt;</code></li>
<li><code>&lt;/div&gt;</code></li>
</ol>
<p>Definindo o CSS:</p>
<ol class="code">
<li><code>#content .row-order {</code></li>
<li class="tab1"><code>width: 500px;</code></li>
<li class="tab1"><code>background: #fff;</code></li>
<li class="tab1"><code>margin: 0;</code></li>
<li class="tab1"><code>border-bottom: 1px dotted #c7c7c7;</code></li>
<li><code>}</code></li>
<li><code>/**/</code></li>
<li><code>#content .row-order .col-title-1 { /* Título tabela - primeira coluna */</code></li>
<li class="tab1"><code>display: table-cell;</code></li>
<li class="tab1"><code>margin: 0;</code></li>
<li class="tab1"><code>padding: 10px;</code></li>
<li class="tab1"><code>width: 60px;</code></li>
<li class="tab1"><code>background: #f1f1f1;</code></li>
<li class="tab1"><code>font-weight: bold;</code></li>
<li class="tab1"><code>color: #0678b3;</code></li>
<li class="tab1"><code>border-left: 1px solid #fff;</code></li>
<li><code>}</code></li>
<li><code>/**/</code></li>
<li><code>* html #content .row-order .col-title-1 { /* Título tabela - primeira coluna (hack IE) */</code></li>
<li class="tab1"><code>display: list-item;</code></li>
<li class="tab1"><code>float: left;</code></li>
<li><code>}</code></li>
<li><code>/**/</code></li>
<li><code>#content .row-order .col-1 { /* Conteúdo tabela - primeira coluna */ </code></li>
<li class="tab1"><code>display: table-cell;</code></li>
<li class="tab1"><code>margin: 0;</code></li>
<li class="tab1"><code>padding: 10px;</code></li>
<li class="tab1"><code>width: 60px;</code></li>
<li class="tab1"><code>border-left: 1px solid #fff;</code></li>
<li><code>}</code></li>
<li><code>/**/</code></li>
<li><code>* html #content .row-order .col-1 { /* Conteúdo tabela - primeira coluna (hack IE) */</code></li>
<li class="tab1"><code>display: list-item;</code></li>
<li class="tab1"><code>float: left;</code></li>
<li><code>}</code></li>
<li><code>/**/</code></li>
<li><code>/* E assim sucessivamente até chegar até a terceira coluna respeitando o tamanho total de 500px para cada célula da tabela. Ou seja: com três colunas, divida os 500px em três como desejar.*/</code></li>
</ol>
<p>Esta técnica dá certo, porém vejam o trabalho para a construção de toda a marcação, além do inconveniente do uso dos hacks para <abbr>IE</abbr>. Todas as colunas posteriores à primeira precisarão de ajustes via hack para ficarem com seu tamanho similar ao apresentado em outros browsers.</p>
<h3>A solução</h3>
<p>Na realidade não é bem uma <em>solução</em>, já que, ao meu ver, deve ser a forma correta de marcação. Fica como uma <em>conscientização</em>, então. Lá vai:</p>
<ol class="code">
<li><code>&lt;table&gt;</code></li>
<li class="tab1"><code>&lt;caption&gt;Minha tabela de produtos&lt;/caption&gt;</code></li>
<li class="tab1"><code>&lt;thead&gt;</code></li>
<li class="tab2"><code>&lt;tr&gt;</code></li>
<li class="tab3"><code>&lt;th&gt;Código&lt;/th&gt;</code></li>
<li class="tab3"><code>&lt;th&gt;Produto&lt;/th&gt;</code></li>
<li class="tab3"><code>&lt;th&gt;Quantidade&lt;/th&gt;</code></li>
<li class="tab2"><code>&lt;/tr&gt;</code></li>
<li class="tab1"><code>&lt;/thead&gt;</code></li>
<li class="tab1"><code>&lt;tbody&gt;</code></li>
<li class="tab2"><code>&lt;tr&gt;</code></li>
<li class="tab3"><code>&lt;td&gt;102&lt;/td&gt;</code></li>
<li class="tab3"><code>&lt;td&gt;Arroz&lt;/td&gt;</code></li>
<li class="tab3"><code>&lt;td&gt;1kg&lt;/td&gt;</code></li>
<li class="tab2"><code>&lt;/tr&gt;</code></li>
<li class="tab1"><code>&lt;/tbody&gt;</code></li>
<li><code>&lt;/table&gt;</code></li>
</ol>
<p>Para este trabalho, uma simples tabela de três colunas resolveria o problema. E melhor: sem grandes truques de <abbr title="Cascading Style Sheets">CSS</abbr>. Tabelas servem para isso! Use-as para isso!</p>
]]></content:encoded>
			<wfw:commentRss>http://ramonpage.com/2006/05/31/o-vicio-dos-divs/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

