<?xml version="1.0" encoding="iso-8859-1"?>
<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>Logon.com.pt &#187; HTML</title>
	<atom:link href="http://logon.com.pt/category/webdesign/html/feed/" rel="self" type="application/rss+xml" />
	<link>http://logon.com.pt</link>
	<description>Notas breves</description>
	<lastBuildDate>Thu, 05 Aug 2010 09:29:35 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Alterações ao layout. De novo!</title>
		<link>http://logon.com.pt/2008/09/07/alteracoes-ao-layout-de-novo/</link>
		<comments>http://logon.com.pt/2008/09/07/alteracoes-ao-layout-de-novo/#comments</comments>
		<pubDate>Sun, 07 Sep 2008 15:16:53 +0000</pubDate>
		<dc:creator>José Carlos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Geral]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://logon.com.pt/?p=185</guid>
		<description><![CDATA[<p>Depois da recente <a href="http://logon.com.pt/2008/08/25/nova-cara-novas-areas-bem-vindos/">alteração ao layout</a> e à estrutura do site eis que resolvi remover-lhe uma coluna, a dos link do <a href="http://delicious.com" rel="fancy">Delicious</a> que julgo não ter grande interesse pela esporádica actualiação. Como tal, fica um layout mais pequeno e mais&nbsp;leve.</p>
<p><a href="http://logon.com.pt/blog-images/logon-new.jpg" rel="fancy"><img src="http://logon.com.pt/blog-images/logon-new.jpg" width="350" alt="Logon layout transition" /></a><br />
Espero que&nbsp;gostem.</p>
]]></description>
		<wfw:commentRss>http://logon.com.pt/2008/09/07/alteracoes-ao-layout-de-novo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSS Naked Day 2008</title>
		<link>http://logon.com.pt/2008/04/09/css-naked-day-2008/</link>
		<comments>http://logon.com.pt/2008/04/09/css-naked-day-2008/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 01:53:46 +0000</pubDate>
		<dc:creator>José Carlos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://logon.com.pt/?p=113</guid>
		<description><![CDATA[<p>À semelhança dos anos anteriores volta-se a realizar o <a href="http://naked.dustindiaz.com/">CSS Naked Day</a>. A única diferença para os dois anos anteriores é apenas a data, que foi ligeiramente modificada.<br />
O evento, criado pelo <a href="http://www.dustindiaz.com/">Dustin Diaz</a>, serve para promover os Web Standards, o uso correcto do (x)html e a semântica do conteúdo se estes não tiverem presente o ficheiro CSS.<br />
Esta ausência de CSS dura 48 horas, o tempo que demora um &#8220;dia&nbsp;internacional&#8221;.</p>
]]></description>
		<wfw:commentRss>http://logon.com.pt/2008/04/09/css-naked-day-2008/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Silverback app</title>
		<link>http://logon.com.pt/2008/03/05/silverback-app/</link>
		<comments>http://logon.com.pt/2008/03/05/silverback-app/#comments</comments>
		<pubDate>Wed, 05 Mar 2008 01:38:34 +0000</pubDate>
		<dc:creator>José Carlos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://logon.com.pt/2008/03/05/silverback-app/</guid>
		<description><![CDATA[<p>Por esta altura já todos devem conhecer, por terem visitado ou ouvido falar, da &#8220;aplicação mistério&#8221; que a <a href="http://clearleft.com" title="Clearleft User Experience, Web Design and Accessibility Consultants">Clearleft</a> está a desenvolver, a <a href="http://silverbackapp.com/" title="Silverback app">Silverback&nbsp;app</a>.</p>
<p>Como da aplicação apenas se sabe que é destinada a web designers, resta-nos apreciar o  efeito conseguido no site, com a sensação de profundidade transmitida. O efeito é ainda mais surpreendente se redimensionarem a janela do vosso browser lentamente e repararem nas folhas que se movem,&nbsp;separadamente.</p>
<p>O efeito, chamado <a href="http://en.wikipedia.org/wiki/Parallax_scrolling" title="Entrada na Wikipédia">parallax scrolling</a> pode ser também apreciado no blog do podcast <a href="http://therissingtonpodcast.co.uk/">The Rissington Podcast</a>, criado por <a href="http://johnoxton.co.uk/">John Oxton</a> e <a href="http://www.hicksdesign.co.uk">Jon Hicks</a>. Vão até ao final da página, redimensionem a janela do browser e observem o&nbsp;<a href="http://pt.wikipedia.org/wiki/Spitfire" title="Entrada na WIkipédia">Spitfire</a>.</p>
<p>Se quiserem saber como reproduzir o efeito, o designer <a href="http://paulannett.co.uk/">Paul Annett</a> explica o processo de criação no artigo <a href="http://www.thinkvitamin.com/features/design/how-to-recreate-silverbacks-parallax">How to recreate Silverback&#8217;s&nbsp;Parallax</a>.</p>
<p>Logo no início do artigo o autor esclarece que o efeito não será visualizado por quem utilizar o Internet Explorer 6.0. Segundo ele, o trabalho para reproduzir o efeito com alguma fidelidade seria demasiado, tendo optado por apresentar a estes utilizadores uma versão mais simples do&nbsp;site.</p>
<p>O gorila presente no site foi criado pelo acima referido <a href="http://www.hicksdesign.co.uk">Jon Hicks</a>, que explica o processo no post <a href="http://www.hicksdesign.co.uk/journal/recent-work-silverback">Recent Work:&nbsp;Silverback</a>.</p>
<p><a href="http://silverbackapp.com/" title="Silverback app">Visitem o site</a>, <a href="http://www.thinkvitamin.com/features/design/how-to-recreate-silverbacks-parallax" title="How to recreate Silverback’s Parallax">leiam o artigo</a>, vale a pena, pela forma criativa com que são utilizadas as <acronym title="Cascading Style Sheets">CSS</acronym> e as&nbsp;imagens.</p>
]]></description>
		<wfw:commentRss>http://logon.com.pt/2008/03/05/silverback-app/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>XRAY e Microformats Bookmarklets</title>
		<link>http://logon.com.pt/2007/08/02/xray-e-microformats-bookmarklets/</link>
		<comments>http://logon.com.pt/2007/08/02/xray-e-microformats-bookmarklets/#comments</comments>
		<pubDate>Thu, 02 Aug 2007 14:23:34 +0000</pubDate>
		<dc:creator>José Carlos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascipt & DOM Scripting]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://logon.com.pt/2007/08/02/xray-e-microformats-bookmarklets/</guid>
		<description><![CDATA[<p>A <a href="http://westciv.com/">Westciv</a> disponibilizou um pequeno, mas muito prático, <a href="http://en.wikipedia.org/wiki/Bookmarklet" title="Wikipédia - Bookmarklet">bookmarklet</a> que permite &#8220;espreitar&#8221; os estilos e formatações aplicadas aos elementos de uma&nbsp;página.</p>
<p>Sim, já se pode fazer o mesmo com o <a href="https://addons.mozilla.org/en-US/firefox/addon/1843">Firebug</a>, aqui a novidade reside no facto de o poder fazer em qualquer browser &#8220;baseado&#8221; no Mozilla ou no Safari. Para já não funciona no Internet&nbsp;Explorer.</p>
<p><img src="http://logon.com.pt/blog-images/xraybookmarklet.png" width="396" alt="XRAY bookmarklet image" /></p>
<p>As intruções são simples, basta ir a <a href="http://westciv.com/xray/">http://westciv.com/xray/</a> e arrastar o <a href="http://westciv.com/xray/">XRAY</a> para a a barra dos bookmarks. Depois, é visitar qualquer página, clicar no XRAY e clicar no elemento que queremos &#8220;espreitar&#8221; e temos um <acronym title="Document Objecct Model">DOM</acronym> Inspector&nbsp;disponivel.</p>
<p>Numa onda de bookmarklets, há um muito útil que permite a <a href="http://leftlogic.com/lounge/articles/microformats_bookmarklet">visualização e exportação de microformatos</a>. Foi criado para o Safari, já que o Firefox tem as extensões <a href="https://addons.mozilla.org/firefox/2240/">Tails</a> e <a href="https://addons.mozilla.org/en-US/firefox/addon/4106">Operator</a>. Apesar disso funciona no FIrefox&nbsp;também.</p>
<p>O processo de instalação é o mesmo do XRAY, bastando arrastar o link para a barra de bookmarks. O bookmarklet e as instruções estão disponíveis no site da <a href="http://leftlogic.com/lounge/articles/microformats_bookmarklet">Left&nbsp;Logic</a>.</p>
<p><img src="http://logon.com.pt/blog-images/mfbookmarklet.png" width="396" alt="Microformats bookmarklet" /></p>
]]></description>
		<wfw:commentRss>http://logon.com.pt/2007/08/02/xray-e-microformats-bookmarklets/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Planet Geek com novo visual</title>
		<link>http://logon.com.pt/2007/07/20/planet-geek-com-novo-visual/</link>
		<comments>http://logon.com.pt/2007/07/20/planet-geek-com-novo-visual/#comments</comments>
		<pubDate>Fri, 20 Jul 2007 22:32:11 +0000</pubDate>
		<dc:creator>José Carlos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Trabalhos]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://logon.com.pt/2007/07/20/planet-geek-com-novo-visual/</guid>
		<description><![CDATA[<p>Os mais atentos já devem ter reparado que a secção <a href="/portfolio" title="Trabalhos Realizados">Portfólio</a> cresceu com a entrada do <a href="http://www.planetgeek.org/" title="Planet Geek">Planet&nbsp;Geek</a>.</p>
<p>O <a href="http://www.planetgeek.org/" title="Planet Geek">Planet Geek</a>,  criado pelo <a href="http://gamito.blogs.sapo.pt/" title="The Remains Of The Day">Mário Gamito</a>, é, na sua essência, um agregador de blogs. Os conteúdos que são apresentados na página principal são retirados de vários blogs, com a autorização expressa dos seus respectivos&nbsp;autores.</p>
<p>Esta nova versão utiliza, como base de funcionamento, a <a href="http://www.codeigniter.com/" title="CodeIgniter - Open source PHP web application framework">CodeIgniter</a>, uma framework PHP gratuita, leve, bastante rápida e muito bem documentada que permitiu poupar muito tempo no desenvolvimento. Para além do novo visual, foram acrescentadas novas secções ao site, como a <a href="http://www.planetgeek.org/geeks/" title="Os Geeks">página individual dos membros</a> e a <a href="http://www.planetgeek.org/podcasts/" title="GeekCasts">secção de&nbsp;podcasts</a>.</p>
<p>Espero que gostem da nova versão do site. Como sempre há coisas a retocar, a melhorar mas, enquanto isso, visitem o <a href="http://www.planetgeek.org/" title="Planet Geek">Planet Geek</a>, vale a&nbsp;pena.</p>
]]></description>
		<wfw:commentRss>http://logon.com.pt/2007/07/20/planet-geek-com-novo-visual/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>30 layouts html para email &#8211; grátis</title>
		<link>http://logon.com.pt/2007/07/04/30-layouts-html-para-email-gratis/</link>
		<comments>http://logon.com.pt/2007/07/04/30-layouts-html-para-email-gratis/#comments</comments>
		<pubDate>Wed, 04 Jul 2007 09:29:49 +0000</pubDate>
		<dc:creator>José Carlos</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://logon.com.pt/2007/07/04/30-layouts-html-para-email-gratis/</guid>
		<description><![CDATA[<p>Apesar de ser contra o uso de html nas mensagens de email, entre outras razões pela forma como os diferentes clientes tratam as mesmas, não posso deixar de colocar aqui o link para uma lista de <a href="http://www.campaignmonitor.com/resources/templates.aspx" title="Visitar o site">30 templates html para mensagens de email</a>, totalmente&nbsp;grátis.</p>
<p><a href="http://www.campaignmonitor.com/resources/templates.aspx" title="Visitar o site">São muitas</a> e quase de certeza que alguma é do vosso&nbsp;agrado.</p>
]]></description>
		<wfw:commentRss>http://logon.com.pt/2007/07/04/30-layouts-html-para-email-gratis/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Ajax &#8211; a lista definitiva</title>
		<link>http://logon.com.pt/2007/06/20/ajax-a-lista-definitiva/</link>
		<comments>http://logon.com.pt/2007/06/20/ajax-a-lista-definitiva/#comments</comments>
		<pubDate>Wed, 20 Jun 2007 14:10:08 +0000</pubDate>
		<dc:creator>José Carlos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascipt & DOM Scripting]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://logon.com.pt/2007/06/20/ajax-a-lista-definitiva/</guid>
		<description><![CDATA[<p>A <a href="http://www.smashingmagazine.com" title="Visitar o site">Smashing Magazine</a> publicou mais uma excelente lista. Desta vez intitulada: <a href="http://www.smashingmagazine.com/2007/06/20/ajax-javascript-solutions-for-professional-coding/" title="ver artigo original">80+ AJAX-Solutions For Professional Coding</a>. São mais de 90 técnicas úteis que se devem ter à mão ao desenvolver soluções que utilizem estas tecnologias tão em voga (<acronym title="Em Inglês: Asynchronous JavaScript and XML">AJAX</acronym>).</p>
<p>Há auto-completers, edição inline, menus, tabs, calendários, há dicas sobre <acronym title="Em Inglês: Cascading Style Sheets">CSS</acronym>, formulários, tabelas, galerias, etc.. Facilmente encontrará aquilo que procura dada a quantidade e qualidade da&nbsp;oferta.</p>
<p>Vão ver <a href="http://www.smashingmagazine.com/2007/06/20/ajax-javascript-solutions-for-professional-coding/">80+ AJAX-Solutions For Professional&nbsp;Coding</a>.</p>
]]></description>
		<wfw:commentRss>http://logon.com.pt/2007/06/20/ajax-a-lista-definitiva/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tabelas de dados com Ajax, DHTML e Javascript</title>
		<link>http://logon.com.pt/2007/05/30/tabelas-de-dados-com-ajax-dhtml-e-javascript/</link>
		<comments>http://logon.com.pt/2007/05/30/tabelas-de-dados-com-ajax-dhtml-e-javascript/#comments</comments>
		<pubDate>Wed, 30 May 2007 15:09:03 +0000</pubDate>
		<dc:creator>José Carlos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascipt & DOM Scripting]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://logon.com.pt/2007/05/30/tabelas-de-dados-com-ajax-dhtml-e-javascript/</guid>
		<description><![CDATA[<p>Se precisa de criar tabelas de dados com funcionalidades avançadas, como edição inline e ordenação, a <a href="http://www.smashingmagazine.com" >Smashing Magazine</a> publicou uma lista que vai concerteza solucionar muito problemas. Chama-se <a href="http://www.smashingmagazine.com/2007/05/30/tables-and-data-grids-with-ajax-dhtml-javascript/" title="Ver artigo original">Data Grids with AJAX, DHTML and&nbsp;JavaScript</a>.</p>
]]></description>
		<wfw:commentRss>http://logon.com.pt/2007/05/30/tabelas-de-dados-com-ajax-dhtml-e-javascript/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tabelas &#8220;às riscas&#8221; II &#8211; DOM Scripting / jQuery</title>
		<link>http://logon.com.pt/2007/04/26/tabelas-as-riscas-ii-dom-scripting-jquery/</link>
		<comments>http://logon.com.pt/2007/04/26/tabelas-as-riscas-ii-dom-scripting-jquery/#comments</comments>
		<pubDate>Thu, 26 Apr 2007 13:14:22 +0000</pubDate>
		<dc:creator>José Carlos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascipt & DOM Scripting]]></category>
		<category><![CDATA[Tech]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://logon.com.pt/2007/04/26/tabelas-as-riscas-ii-dom-scripting-jquery/</guid>
		<description><![CDATA[<p>Esta é a conclusão do anterior <a href="http://logon.com.pt/2007/04/17/tabelas-as-riscas-parte1/" title="ver primeira parte">Tabelas &#8220;às riscas&#8221; I -&nbsp;HTML/PHP</a>.</p>
<p>Para quem não leu, o resultado que se pretende alcançar é&nbsp;este:</p>
<p><a href="http://www.flickr.com/photos/jjoaquim/457725050/" title="Photo Sharing"><img src="http://farm1.static.flickr.com/188/457725050_db1a0fec28_o.jpg" alt="Tabela " height="245" width="391" /></a></p>
<p><a href="http://logon.com.pt/2007/04/17/tabelas-as-riscas-parte1/" title="ver post anterior">No post anterior</a> falei em duas formas de alternar a cor de fundo das linhas de uma tabela de dados. A primeira, manualmente, atribuindo a class <em>.odd</em> às linhas ímpares, directamente no código <acronym title="HyerText Markup Language">HTML</acronym>. Como esta solução se torna mais difícil à medida que o número de linhas vai aumentando, utilizei a versão <acronym title="Hypertext Preprocessor">PHP</acronym> para obter o mesmo resultado, automaticamente, e com menor probabilidade da ocorrência de&nbsp;erros.</p>
<p>Neste artigo vamos utilizar os mesmos ficheiros&nbsp;base:</p>
<ul>
<li><a href="http://logon.com.pt/diversos/tabelas/tabela.html" title="ver tabela original">tabela.html</a> - o link para o artigo original leva à primeira parte e não a este&nbsp;post.</li>
<li><a href="http://logon.com.pt/diversos/tabelas/tabelas-styles.css" title="ver ficheiro css">tabela-styles.css</a></li>
</ul>
<p>A diferença é que vamos utilizar <a href="http://en.wikipedia.org/wiki/DOM_Scripting" title="entrada na Wikipédia">DOM Scripting</a> e a <a href="http://jquery.com" title="visitar jQuery.com">jQuery</a> para obter o mesmo&nbsp;resultado.</p>
<p><!--more--></p>
<h3>DOM&nbsp;Scripting</h3>
<p>O DOM, Document Object Model, especifica os elementos de um documento (<acronym title="HyperText Markup Language">HTML</acronym>, <acronym title="eXtensible Markup Language">XML</acronym>, etc.) e as ligações entre eles. O <acronym title="Document Object Model">DOM</acronym> define os atributos de cada objecto e a forma como os mesmos podem ser manipulados. Vamos utilizar Javscript para manipular estes objectos e respectivos atributos. Voltaremos à definição de <acronym title="Document Object Model">DOM</acronym> noutro&nbsp;post.</p>
<p>O que precisamos de fazer&nbsp;é:</p>
<ul>
<li>Certificar-nos que o método <em>getElementsByTagName</em> existe (se não existir, não faz nada, mas também não dá&nbsp;erro;</li>
<li>Obter todos os elementos <em>tabela (table)</em> do&nbsp;documento;</li>
<li>Para cada tabela, criar uma variável, boleana, <em>odd</em> com um estado de&nbsp;falso;</li>
<li>Iterar por todos as linhas da&nbsp;tabela;</li>
<li>Se o estado da variável <em>odd</em> for falso, não aplicar nenhum estilo, mas alterar o estado da variável para&nbsp;verdadeiro;</li>
</ul>
<p>Para podermos utilizar a função sempre que quisermos e para que ela não seja executada sem que a página estaja toda carregada, podendo originar erros, vamos criar uma função chamada&nbsp;<em>stripes()</em>.</p>
<p><code>function stripes() {<br />
if (!document.getElementsByTagName) return false;<br />
var tables = document.getElementsByTagName("table");<br />
for (var i=0; i<br />
&lt;tables.length;&gt;&lt;/tables.length;&gt;var odd = false;<br />
var rows = tables[i].getElementsByTagName("tr");<br />
for (var j=0; j&lt;rows.length;&gt;<br />
if (odd == true) {<br />
rows[j].className = "odd";<br />
odd = false;<br />
} else {<br />
odd = true;<br />
}<br />
}<br />
}<br />
}&lt;/rows.length;&gt;</code><br />
Agora que temos a função pronta, só precisamos de a executar. Para isso utilizamos o evento <em>window.onload</em> que garante que o código dentro dele só é executado quando o documento estiver totalmetne carregado, evitando alguns erros. Ficará assim:<br />
<code>window.onload = function() {<br />
stripes();<br />
}</code><br />
Finalmente, basta guardar o código acima num ficheiro <em>stripes-dom.js</em> (escolham o nome que quiserem claro) e chamá-lo no cabeçalho da página da seguinte forma:<br />
<code>&lt;script src="stripes-dom.js" type="text/javascript"&gt;&lt;/script&gt;</code><br />
<a href="http://logon.com.pt/diversos/tabelas/tabela-dom.html" title="Resultado final">Ver resultado utlizando DOM Scripting</a>.<br />
Assim temos o resultado pretendido, sem adiccionar código nenhum à tabela (o que nem sempre é possível). Caso o utilizador tenha o javascript desactivado, o efeito perde-se, ficando a tabela sem nenhuma alteração, mas igualmente&nbsp;legível.</p>
<h3>jQuery</h3>
<p>Obter o mesmo efeito utilizando a <a href="http://jquery.com" title="Visitar o site">jQuery</a> - uma biblioteca javascript - é extremamente simples.<br />
Primeiro, fazemos o <a href="http://docs.jquery.com/Downloading_jQuery" title="Site para download da jQuery">download da jQuery</a>; depois, &#8220;chamamos&#8221; o ficheiro na nossa página:<br />
<code>&lt;script src="jquery-latest.pack.js" type="text/javascript"&gt;&lt;/script&gt;</code><br />
Temos agora à disposição um sem fim de recursos que <a href="http://jquery.com" title="Visitar o site">jQuery</a> disponibiliza. Vamos utilizar um deles para obter todas as tabelas do documento, depois, para cada tabela, aplicar a class <em>odd</em> às linhas ímpares.<br />
Se, e só neste caso, o nosso documento tiver uma tabela podemos utilizar:<br />
<code>$("tr:odd").addClass("odd");</code><br />
O que a linha anterior faz é obter todas as linhas (tr) ímpares de todas as tabelas e atribuir-lhe a class <em>odd</em>. Convém utilizar esta forma apenas em documentos com uma única tabela, pois, por exemplo, se a primeira tabela tiver 7 linhas, a linha que vai ser alterada na tabela seguinte é a segunda, já que ele conta todas as linhas, não fazendo distinção em que tabela estas se encontram.<br />
Para que o resultado seja o desejado teremos de utilizar:<br />
<code>$("tr:nth-child(odd)").addClass("odd");</code><br />
A linha anterior usa a pseudo-class, <a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215/#nth-child-pseudo" title="Ver definição - W3C">nth-child</a>, que permite manipular as linhas de uma dada tabela, podendo aceitar argumentos como <em>odd</em> e <em>even</em>, que, respectivamente correspondem a linhas ímpares e pares. Para mais propriedades, vejam a <a href="http://www.w3.org/TR/2005/WD-css3-selectors-20051215/#nth-child-pseudo" title="Ver definição - W3C">especificação do W3C</a>.<br />
Agora só precisamos de fazer com que a função seja chamada quando o documento é carregado. Da seguinte forma:<br />
<code>$(document).ready(function() {<br />
$("tr:nth-child(odd)").addClass("odd");<br />
});</code><br />
Basta guardar estas linhas num ficheiro, por exemplo <em>stripe-jquery.js</em> e incluir na nossa página a linha correspondente:<br />
<code>&lt;script src="stripe-jquery.js" type="text/javascript"&gt;&lt;/script&gt;</code><br />
E está feito. Mais rápido, mais simples e com bastante menos linhas que os restantes métodos.<br />
<a href="http://logon.com.pt/diversos/tabelas/tabela-jquery.html" title="Veja o resultado">Ver resultado com&nbsp;jQuery</a>.</p>
<h4>Conclusão</h4>
<p>Cada um dos quatro métodos referidos, apesar do mesmo objectivo, tem aplicações diferentes. Os dois primeiros, HTML e PHP+HTML, funcionam quando se tem acesso à criação do nosso alvo, as tabelas, e julgo serem os mais utilizados. Os dois últimos, DOM Scripting e jQuery, funcionam quando não se pode modificar os dados-alvo, as tabelas, mas falham quando o utilizador desactivou o javascript no seu browser. De referir que, caso as folhas de estilo (<acronym title="Em Inglês: Cascading Style Sheets">CSS</acronym>) estejam desactivadas, qualquer um destes métodos&nbsp;falha.</p>
<p>Brevemente vou voltar a utilizar esta última tabela com outros objectivos. A idéia já cá está, falta&nbsp;escrever.</p>
]]></description>
		<wfw:commentRss>http://logon.com.pt/2007/04/26/tabelas-as-riscas-ii-dom-scripting-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Tabelas &#8220;às riscas&#8221; I &#8211; HTML/PHP</title>
		<link>http://logon.com.pt/2007/04/17/tabelas-as-riscas-parte1/</link>
		<comments>http://logon.com.pt/2007/04/17/tabelas-as-riscas-parte1/#comments</comments>
		<pubDate>Tue, 17 Apr 2007 16:47:44 +0000</pubDate>
		<dc:creator>José Carlos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webdesign]]></category>

		<guid isPermaLink="false">http://logon.com.pt/2007/04/17/tabelas-as-riscas-parte1/</guid>
		<description><![CDATA[<p>Todos, ou quase todos, ao criar uma tabela já sentiram a necessidade de alternar a cor de fundo das linhas para facilitar a compreensão e a leitura da mesma. Vou, em 2 artigos, mostrar 4 formas de o fazer: no primeiro manualmente, utilizando <acronym title="Em Inglês: HyperText Markup Language">HTML</acronym> e automaticamente, com <acronym title="Hypertext Preprocessor">PHP</acronym>. No segundo utilizando <a href="http://en.wikipedia.org/wiki/DOM_Scripting" title="entrada na WIkipédia">DOM Scripting</a> e uma biblioteca Javscript, a <a href="http://jquery.com" title="visitar o site">jQuery</a>.<br />
O resultado pretendido é este:<br />
<a href="http://www.flickr.com/photos/jjoaquim/457725050/" title="Photo Sharing"><img src="http://farm1.static.flickr.com/188/457725050_db1a0fec28_o.jpg" width="391" height="245" alt="Tabela &quot;às riscas&quot;" /></a><br />
Vamos utilizar os seguintes ficheiros&nbsp;base:</p>
<ul>
<li><a href="http://logon.com.pt/diversos/tabelas/tabela.html" title="ver tabela original">tabela.html</a></li>
<li><a href="http://logon.com.pt/diversos/tabelas/tabelas-styles.css" title="ver ficheiro css">tabela-styles.css</a></li>
</ul>
<p><!--more--><br />
Como podem reparar, no ficheiro <acronym title="Em Inglês: Cascading Style Sheets">CSS</acronym> existe uma class <em>.odd</em> com as seguintes características:<br />
<code>.odd {<br />
	background-color: #ccf;<br />
	color: #000;<br />
}</code><br />
Esta class vai ser atribuída às linhas ímpares da tabela, de forma a alterar a cor de fundo das&nbsp;mesmas.</p>
<h3>HTML</h3>
<p>Manualmente, em <acronym title="Em Inglês: HyperText Markup Language">HTML</acronym> a nossa tabela ficaria assim:<br />
<code>(...)<br />
	&lt;tbody&gt;<br />
		&lt;tr class="odd"&gt;<br />
			&lt;td&gt;1º&lt;/td&gt;<br />
			&lt;td&gt;F.C. Porto&lt;/td&gt;<br />
		&lt;/tr&gt;<br />
		&lt;tr&gt;<br />
			&lt;td&gt;2º&lt;/td&gt;<br />
			&lt;td&gt;S.L. Benfica&lt;/td&gt;<br />
		&lt;/tr&gt;<br />
		&lt;tr class="odd"&gt;<br />
			&lt;td&gt;3º&lt;/td&gt;<br />
			&lt;td&gt;Sporting C.P.&lt;/td&gt;<br />
		&lt;/tr&gt;<br />
(...)</code><br />
<a href="http://logon.com.pt/diversos/tabelas/tabela-html.html" title="ver tabela html">O exemplo da versão HTML</a>.<br />
Como a tabela é pequena é fácil ver a que linhas atribuir a class <em>.odd</em>. Esta maneira torna-se mais complicada à medida que o número de linhas vai crescendo. Vamos agora ver uma forma de alcançar o mesmo resultado, mas de forma&nbsp;automática.</p>
<h3>PHP</h3>
<p>Se na versão <acronym title="Em Inglês: HyperText Markup Language">HTML</acronym> tínhamos de atribuir manualmente a class <em>.odd</em> às linhas ímpares, utilizando <acronym title="Hypertext Preprocessor">PHP</acronym> podemos automatizar essa tarefa. O código da tabela fica assim:<br />
<code>(...)<br />
&lt;tbody&gt;<br />
&lt;?php<br />
$clubes = array(<br />
	1 =&gt; 'F.C. Porto',<br />
	2 =&gt; 'S.L. Benfica',<br />
	3 =&gt; 'Sporting C.P.',<br />
	4 =&gt; 'Belenenses',<br />
	5 =&gt; 'Sp. Braga');<br />
foreach($clubes as $id =&gt; $dados) {<br />
if($id % 2 == 0)<br />
	$className = '';<br />
	else<br />
		$className = ' class="odd"';<br />
	echo '&lt;tr'.$className.'&gt;&lt;td&gt;'.$id.'º&lt;/td&gt;';<br />
	echo '&lt;td&gt;'.$dados.'&lt;/td&gt;&lt;/tr&gt;';<br />
}<br />
?&gt;<br />
&lt;/tbody&gt;<br />
(...)</code><br />
<a href="http://logon.com.pt/diversos/tabelas/tabela-php.php" title="ver tabela php">O exemplo da versão PHP</a>.<br />
O que o código anterior faz é o&nbsp;seguinte:</p>
<ul>
<li>Se o resto da divisão inteira do índice do clube por 2 for diferente de 0, então o índice é ímpar, portanto, o nome da class a atribuir à linha será&nbsp;<em>.odd</em>;</li>
<li>Se esse valor for igual a 0, então o índice é par e não atribui nenhuma class à&nbsp;linha;</li>
<li>Preenche as células com os dados&nbsp;correspondentes;</li>
</ul>
<p>As vantagens deste método são óbvias: maior rapidez na criação do código e redução da possibilidade de falhas na atribuição das classes.<br />
Vimos duas formas de obter as linhas de cor diferente numa tabela de dados. Existirão muitas outras formas de o fazer. Na segunda parte deste artigo mostro mais duas hipóteses, mas sem acrescentar elementos ao código da página, utilizando <a href="http://en.wikipedia.org/wiki/DOM_Scripting" title="entrada na WIkipédia">DOM Scripting</a> e, posteriormente, uma biblioteca javascript, a&nbsp;<a href="http://jquery.com" title="Visitar jQuery.com">jQuery</a>.</p>
]]></description>
		<wfw:commentRss>http://logon.com.pt/2007/04/17/tabelas-as-riscas-parte1/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 0.370 seconds -->
