<?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>Desenvolvedor FrontEnd - wbruno</title>
	<atom:link href="http://wbruno.com.br/feed/" rel="self" type="application/rss+xml" />
	<link>http://wbruno.com.br</link>
	<description></description>
	<lastBuildDate>Fri, 23 Mar 2012 10:00:46 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Como eu desenvolvo ?</title>
		<link>http://wbruno.com.br/2012/03/23/como-eu-desenvolvo/</link>
		<comments>http://wbruno.com.br/2012/03/23/como-eu-desenvolvo/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 10:00:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Opinião]]></category>
		<category><![CDATA[opinião]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1934</guid>
		<description><![CDATA[Me intero das regras de negócio Não consigo pensar em outro ponto de partida. Tenho que entender oque é, para só então resolver a questão da melhor forma possível. Tento prever desdobramentos Não, não estou treinando para adivinhar o futuro. Não implemento estes desdobramentos logo de início. GET REAL. Faço aos poucos, mas nem por [...]]]></description>
			<content:encoded><![CDATA[<h2>Me intero das regras de negócio</h2>
<p>Não consigo pensar em outro ponto de partida. Tenho que entender oque é, para só então resolver a questão da melhor forma possível.<br />
<span id="more-1934"></span></p>
<h2>Tento prever desdobramentos</h2>
<p>Não, não estou treinando para <i>adivinhar o futuro</i>.<br />
Não implemento estes desdobramentos logo de início. <a href="http://gettingreal.37signals.com/GR_por.php" target="_blank">GET REAL</a>.</p>
<p>Faço aos poucos, mas nem por isso deixo de planejar futuras expansões.<br />
Pois é importante deixar a estrutura robusta e pronta para receber atualizações de novas features.</p>
<h2>Coloco tudo no papel</h2>
<p>Dessa forma, eu vejo o que pensei, e sou capaz de mudar antes de sair fazendo.</p>
<h2>Estudo as tecnologias que serão empregadas</h2>
<p>Se dentre as linguagens, técnicas, ou sei lá o que que eu tiver que usar para desenvolver este projeto, tiver alguma que eu não conheço, ou não sou &#8220;tão bom&#8221;, eu prefiro estudar ela aparte. Separado do projeto.<br />
Não vou aprender tão bem, usando diretamente no projeto final, qnto eu aprenderia ao estudar separadamente.</p>
<blockquote><p>&#8220;Se eu tivesse nove horas para cortar uma árvore, passaria seis horas afiando o meu machado&#8221;</p></blockquote>
<p>- If I had nine hours to cut down a tree, I would spend six hours sharpening my axe &#8211;<br />
Abraham Lincoln citado em &#8220;Communication in management‎&#8221;. <a href="http://pt.wikiquote.org/wiki/%C3%81rvore" target="_blank">Minha Fonte</a>.</p>
<p>Uns três anos atrás, peguei o meu primeiro &#8220;grande projeto&#8221;. Pedi 45 dias para entregá-lo. Fiquei 30 dias estudando(sem escrever uma única linha de código), e então nos últimos 15 desenvolvi tudo. Sem pressa, sem problemas, sem dúvidas, e sem grandes dificuldades.<br />
Resultado: está no ar até hoje, e funciona tudo muito bem, obrigado.</p>
<h2>Entrego valor</h2>
<p>Por menor que esse valor possa me parecer. Mais vale pouco, do que um plano gigantesco de ação, com coisas que nem eram requisitos inicialmente.<br />
É um pouco do &#8220;não nos perdermos&#8221; no planejamento. Sim, planejar é importante, mas também é preciso fazer.</p>
<p>Seguindo os passos acima, chega a hora de fazer, e consequentemente, começar a entregar.<br />
Deixar para mostrar apenas na versão final, fatalmente trará problemas que teriam sido evitados com entregas parciais.</p>
<h2>Versão Alfa</h2>
<p>Sim, por que não ?<br />
Lembram-se do &#8220;entrego valor&#8221; ? O cliente quer ver. Ele quer acompanhar o desenvolvimento.</p>
<p>Tenho menos dor de cabeça, por conseguir ajustar as coisas no meio do caminho, do que esperar ficar tudo pronto para só então mudar complemente tudo.</p>
<p>Menos cobranças também. Quanto mais tempo ficarmos sem apresentar &#8220;nada&#8221;, mais ligações, emails, visitas e reuniões desnecessárias(mais enxeção de saco), o cliente fará.</p>
<h2>Versão Beta</h2>
<p>É o resumido. Poucas funcionalidades, mas as funcionalidades essenciais.</p>
<p>Se for um CMS, o básico é cadastrar páginas. Entrego isso, e envio para testes e homologação.<br />
Se for uma Loja Virtual, o cliente não quer saber como cadastrar propriedades variáveis, mas sim colocar um produto com o preço(neste instante). E essa parte precisa funcionar bem.</p>
<h2>Minha conclusão</h2>
<p>Muitos pecam por não fazerem o simples, por não entregar um básico que esteja 100%.<br />
De que adianta multicategorias, ou nuvem de tags se o cadastro inicial tem bugs ?</p>
<p>Você não precisa começar com MAIS que seu concorrente. Porém julgo ser um ótimo diferencial se necessário for MELHOR. Mais simples, mais rápido, que realmente funcione..</p>
<p>Eu <strong>sempre</strong> faço <strong>tudo</strong> oque está acima ?<br />
Lógico que não. Alguns projetos são menores, às vezes é apenas um recorte de layout que já estou bem acostumado a fazer. Porém tenho certeza de que alguns dos passos eu cumpro. </p>
<p>E enquanto escrevia este texto, me dei conta de que os mesmos passos podem ser aplicados a praticamente tudo.<br />
Desde o desenho do layout, passando pelo recorte html+css, modelagem do banco de dados, e construção do backend.</p>
<p>É isso. E você ? como vc desenvolve ?(seja lá oque for)</p>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/03/23/como-eu-desenvolvo/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Sobre o livro: &#8220;html5 e css3 com farinha e pimenta&#8221; &#8211; review</title>
		<link>http://wbruno.com.br/2012/03/21/sobre-livro-html5-css3-farinha-pimenta/</link>
		<comments>http://wbruno.com.br/2012/03/21/sobre-livro-html5-css3-farinha-pimenta/#comments</comments>
		<pubDate>Wed, 21 Mar 2012 19:40:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Livro]]></category>
		<category><![CDATA[Opinião]]></category>
		<category><![CDATA[css3]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[livro]]></category>
		<category><![CDATA[tableless]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1901</guid>
		<description><![CDATA[Por curiosidade comecei a ler o livro: html5 e css3(com farinha e pimenta), do Diego Eis e do Elcio Ferreira. O livro é super bem organizado, e a leitura vai fluindo de forma gradativa e agradável. Nada de novo nas primeiras páginas, mas realmente gostei da forma com que o conteúdo está sendo apresentado. No [...]]]></description>
			<content:encoded><![CDATA[<p>Por curiosidade comecei a ler o livro: <strong>html5 e css3</strong>(com farinha e pimenta), do Diego Eis e do Elcio Ferreira.<br />
<a href="http://wbruno.com.br/wp-content/uploads/2012/03/320.jpg" rel="lightbox[1901]"><img class="aligncenter size-medium wp-image-1902" title="320" src="http://wbruno.com.br/wp-content/uploads/2012/03/320-192x300.jpg" alt="" width="192" height="300" /></a><br />
<span id="more-1901"></span><br />
O livro é super bem organizado, e a leitura vai fluindo de forma gradativa e agradável.<br />
Nada de novo nas primeiras páginas, mas realmente gostei da forma com que o conteúdo está sendo apresentado.</p>
<p>No decorrer do livro, toda a especificação do html5 vai sendo destrinchada. Eu não sabia da incorporação da linguagem <strong>MathML</strong>, achei bem bacana, e vem a calhar com um projeto que quero desenvolver.</p>
<p>Canvas, SVG, microdata.. enfim.. é abordado muito mais do que apenas html5. E isso faz o livro ser &#8220;bem completo&#8221;. De forma que a listagem de eventos e propriedades, também te possibilite reusar o livro para consulta futuramente.</p>
<p>É um bom livro. Iniciantes que nunca tiveram contato com html podem lê-lo. Quem nunca teve contato com html5 também, pois o pensamento vai sendo construido com base em conhecimentos prévios do leitor sobre tableless.</p>
<p>No capítulo 7, finalmente começamos a ler sobre CSS.</p>
<p>Eu gostei.</p>
<p>@errata (erros que eu percebi)<br />
-> tem algum erro aqui antes da 33, mas esqueci de anotar lol<br />
<strong>página 33</strong> &#8211; _aracteres (faltando uma letra)<br />
<strong>página 52</strong> &#8211; tabela incompleta (o header com o nome dos browsers)<br />
<strong>página 59</strong> &#8211; &#8220;Foi ai que o grupo <strong>de</strong> decidiu&#8221;<br />
<strong>página 120</strong> &#8211; Texto duplicado: &#8220;Não havia&#8230;&#8221;<br />
<strong>página 137</strong> &#8211; &#8220;pelo sistema <strong>de</strong> lê a tela&#8221;(provavelmente era pra ser um &#8216;que&#8217;)<br />
<strong>página 138</strong> &#8211; &#8220;e entender como o essas&#8221; (acho q tem um &#8216;o&#8217; sobrando)<br />
<strong>página 143</strong> &#8211; &#8220;As pseudo-classes manipula um&#8221; &#8211; faltou o plural<br />
<strong>página 144</strong> &#8211; &#8220;das pseudo-classes é vem&#8221; &#8211; o &#8216;é&#8217; tá perdido ali<br />
<strong>página 144</strong> &#8211; &#8220;especificação do W3C4&#8243; &#8211; o &#8217;4&#8242; tá perdido ali<br />
<strong>página 145</strong> &#8211; &#8220;não formatam os estaods&#8221; &#8211; correto: estados<br />
<strong>página 145</strong> &#8211; &#8220;alternadas) precisarímos&#8221; &#8211; precisaríamos, porém creio que &#8220;precisávamos&#8221; cairia melhor.<br />
<strong>página 159</strong> &#8211; &#8220;dessas cores6.&#8221; &#8211; tá sobrando esse 6<br />
<strong>página 159</strong> &#8211; &#8220;problemas sufientes&#8221; &#8211; correto: suficientes<br />
<strong>página 160</strong> &#8211; &#8220;leia no Wikipedia7&#8243; &#8211; sobrando o &#8217;7&#8242;<br />
<strong>página 160</strong> &#8211; &#8220;o pessoal do WAsP8&#8243; &#8211; sobrando o &#8217;8&#8242;<br />
<strong>página 189</strong> &#8211; &#8220;caso o tamanho ou a resolução da tela mudam&#8221; &#8211; mudem(sugestão)<br />
<strong>página 196</strong> &#8211; &#8220;criou um script9 em&#8221; &#8211; sobrando o &#8217;9&#8242;<br />
<strong>página 200</strong> &#8211; &#8220;O page box irá ter o tgamanho&#8221; &#8211; sobrando o &#8216;g&#8217;<br />
<strong>página 212</strong> &#8211; &#8220;Utilizar CSS&#8221; &#8211; sugiro: Ao utilizar&#8230;<br />
<strong>página 216</strong> &#8211; &#8220;para um caminha&#8221; &#8211; correto: caminho<br />
<strong>página 218</strong> &#8211; &#8220;homogênea, flexível, portável.&#8221; &#8211; sugiro ..flexível e portável.</p>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/03/21/sobre-livro-html5-css3-farinha-pimenta/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mau cheiro em código css &#8211; Como sentir</title>
		<link>http://wbruno.com.br/2012/03/16/mau-cheiro-em-codigo-css-como-sentir/</link>
		<comments>http://wbruno.com.br/2012/03/16/mau-cheiro-em-codigo-css-como-sentir/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 13:53:32 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[mau cheiro]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1875</guid>
		<description><![CDATA[Não quero falar apenas como &#8220;melhorar&#8221; o seu código. Muitos já escreveram sobre, e você já deve estar cansado de ouvir as mesmas coisas: -> Use algum CSS reset; -> Ordem alfabética (?) [eu prefiro ordenar por 'tipo']; -> Use regras resumidas(agrupamento): margin-top: 10px; margin-bottom: 5px;.. seria melhor: margin: 10px 0 5px; -> Comente para [...]]]></description>
			<content:encoded><![CDATA[<p>Não quero falar apenas como &#8220;melhorar&#8221; o seu código.<br />
Muitos já escreveram sobre, e você já deve estar cansado de ouvir as mesmas coisas:</p>
<p>-> Use algum CSS reset;<br />
-> Ordem alfabética (?) [eu prefiro ordenar por '<i>tipo'</i>];<br />
-> Use regras resumidas(agrupamento): margin-top: 10px; margin-bottom: 5px;.. seria melhor: margin: 10px 0 5px;<br />
-> Comente para organizar;<span id="more-1875"></span><br />
-> Identar elementos encaixados (?) [particularmente não sou muito fãn disso] [<a href="http://tableless.com.br/6-estrategias-para-melhorar-a-organizacao-do-seu-css-2/" target="_blank">fonte</a>]<br />
-> Dividir de forma lógica, algo como: estrutura, classes utilitárias, módulos&#8230;<br />
-> Um único padrão de nomenclatura [camelCase, dash-case, underscore, ou...] (seja consistente);<br />
-> Escolha bons nomes; (meu post anterior fala um pouco sobre isso)<br />
-> Uma Regra = Uma linha … Múltiplas regras = Múltiplas linhas; [<a href="http://www.webdesignblog.com.br/desenvolvimento/10-dicas-para-escrever-melhor-seu-css/" target="_blank">fonte</a>]<br />
-> Indice [um comentário no início mostrando os grupos de seletores que vc usou];<br />
-> Mais de uma folha de estilos [se o site for "grande" isso vale a pena] [<a href="http://algoritmizando.com/desenvolvimento/como-escrever-um-css-melhor/" target="_blank">fonte</a>]</p>
<p>E outras tantas parecidas, derivadas, e com nomes diferentes dessas acima.<br />
Quero falar sobre o <strong>mau cheiro</strong>. Sobre quando é que o seu código deve lhe parecer &#8220;estranho&#8221;, &#8220;incorreto&#8221; apesar de funcionar.<br />
Afinal é necessário identificar que algo está errado para poder corrigir</p>
<h2>Quando você notar duplicação de código:</h2>
<p>Por exemplo, você possui uma área parecida com isto:</p>
<pre name="code" class="css">#box_telefone {
   background: #fff; border-radius: 10px;
   float: left;
   width: 100px; height: 50px;
}
#box_email {
   background: #fff; border-radius: 10px;
   float: left;
   width: 200px; height: 75px;
   margin: 20px;
   color: #ddd;
}</pre>
<p>Ambos são &#8220;caixas&#8221; no layout, e possui estilos(formatações básicas) semelhantes. Eu sugiro fazer algo assim:</p>
<pre name="code" class="css">.box { background: #fff; border-radius: 10px; }
.fleft { float: left; }
#box_telefone {
   width: 100px; height: 50px;
}
#box_email {
   width: 200px; height: 75px;
   margin: 20px;
   color: #ddd;
}</pre>
<p>Note que também retirei o float dos seletores, e fiz uma &#8220;classe utilitária&#8221; para ele.<br />
Dessa forma posso sei lá, usar o #box_telefone na esquerda na home, e na direita na página de contato.</p>
<p>Existem técnicas e &#8220;boas horas&#8221; para separar, vá com cuidado.</p>
<h2>Quando tiver muitos seletores com vírgulas</h2>
<p>Algo assim:</p>
<pre name="code" class="css">#box_telefone,
#box_email { /* .. */ }</pre>
<p>Isso &#8220;tende&#8221; a crescer. Tende a sair do controle. Então se você precisar de mais uma caixa com estilos parecidos, vai lá e adiciona outro seletor com vírgula ai.<br />
Nesse caso, aplique a dica de cima. Vale mais a pena criar classes &#8220;modulares&#8221;, do que ir listando IDs para um mesmo conjunto de regras.</p>
<h2>Quando a cascata CSS não estiver sendo utilizada</h2>
<p>Um outra forma de evitar duplicação de código css, é aproveitar bem a cascata css. Coisas como: definir o <var>font-family</var> para o seletor <var>body</var>, que então os demais elementos herdarão dele.<br />
Mas não definir tag por tag, pois quando você precisar sobrescrever, ficará brigando por especificidade.</p>
<p>Use a cascata, porém tente ser genérico. Bem pouco específico, ou nada(se não, não é cascata).</p>
<h2>Quando um efeito/posicionamento estiver lhe dando muito trabalho</h2>
<p>Se você entender corretamente o boxmodel, e souber utilizar todas as propriedades css, conhecendo tudo o que elas fazem(de acordo com as especificações), então aquele posicionamento que está te dando mais trabalho, te fazendo usar 10-15 regras, pode estar errado.</p>
<p>É bem sutil isso. Mas existem várias formas de se fazer uma mesma coisa.<br />
Se você começar a fazer uma que não está dando certo, e for ficando cada vez mais complexo, então repense e tente fazer de outra forma.</p>
<p>Às vezes basta mudar um pouco o outro elemento que estava antes na marcação, ou posicionar de uma outra maneira este problemático, e tudo se resolve.<br />
Posso dizer que quanto mais complicado ficar a sua estratégia para resolver, mais chances você tem de encontrar incompatibilidade entre os browsers.</p>
<p>A minha regra aqui é:</p>
<blockquote><p>Deve primeiro fazer sentido para você mesmo.</p></blockquote>
<p>Digo isso, pois muitos desenvolvedores saem jogando propriedades, &#8220;até dar certo&#8221;. Na base do chute. Não é assim que se desenvolve &#8220;bem&#8221;.</p>
<p>Consigo me lembrar destas por hora. Conhece mais alguma forma ?<br />
Me conte nos comentários.</p>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/03/16/mau-cheiro-em-codigo-css-como-sentir/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Turn lights Off &#8211; Meu tema em fundo preto</title>
		<link>http://wbruno.com.br/2012/03/13/turn-lights-meu-tema-em-fundo-preto/</link>
		<comments>http://wbruno.com.br/2012/03/13/turn-lights-meu-tema-em-fundo-preto/#comments</comments>
		<pubDate>Tue, 13 Mar 2012 18:56:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[theme black wordpress]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1870</guid>
		<description><![CDATA[Site com fundo preto é cansativo, ainda mais se for um site com bastante conteúdo para lermos. Porém, por diversas razões há quem goste. Pensando nessa linha, implementei um botão ali no header do meu blog: &#8220;black theme&#8221;. Estou em fase de testes. Não travei com cookie ainda. Adicionei as seguintes linhas no meu css, [...]]]></description>
			<content:encoded><![CDATA[<p>Site com fundo preto é cansativo, ainda mais se for um site com bastante conteúdo para lermos.<br />
Porém, por diversas razões há quem goste.</p>
<p>Pensando nessa linha, implementei um botão ali no header do meu blog: &#8220;black theme&#8221;.<br />
Estou em fase de testes. Não travei com cookie ainda.</p>
<p>Adicionei as seguintes linhas no meu css, para &#8220;mudar&#8221; a cor do meu tema.<br />
<span id="more-1870"></span></p>
<pre name="code" class="css:firstLine[199]">
/* black style */
#switch { cursor: pointer; border: 1px solid #ccc;
display: inline-block; padding: 5px 20px; }
body.black { background: #090909; }

.black .post time,
.black #main { background: transparent; }

.black #sidebar a,
.black, .black #switch,
.black h1 a, .black h2 a { color: #fff; }

.black .post time,
.black h1, .black h2, .black h3, .black h4, .black h5, .black h6,
.black a { color: #00aaff; }

/* highlight */
.black .dp-highlighter ol li span { color: #333; }

.black .dp-highlighter .tools,
.black .dp-highlighter, .black .dp-highlighter ol,
.black .dp-highlighter ol li, .black .dp-highlighter .columns div,
.black .dp-highlighter ol li.alt { background: transparent; }

.black .dp-highlighter .tools,
.black .dp-highlighter ol li, .black .dp-highlighter .columns div { border-color: #00aaff; }
</pre>
<p>Como podem ver, o javascript apenas adiciona uma class ao body e pronto. O css cuida do restante.</p>
<p>Tendo ficado bom, eu termino a implementação e travo com cookie a sua opção de ver meu blog <em>in black</em>.<br />
Me digam oque acharam. =)</p>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/03/13/turn-lights-meu-tema-em-fundo-preto/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Comentários do WordPress em cadeia &#8211; Respeitando hierarquia do comentário pai</title>
		<link>http://wbruno.com.br/2012/03/12/comentarios-wordpress-em-cadeia-respeitando-hierarquia-comentario-pai/</link>
		<comments>http://wbruno.com.br/2012/03/12/comentarios-wordpress-em-cadeia-respeitando-hierarquia-comentario-pai/#comments</comments>
		<pubDate>Mon, 12 Mar 2012 10:00:56 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1856</guid>
		<description><![CDATA[Refiz recentemente o novo tema do blog da Locaweb: http://wbruno.com.br/2012/02/24/novo-tema-wordpress-em-html5-blog-da-locaweb/ Acabei deixando passar em branco, a funcionalidade dos comentários Reply, aparecerem logo abaixo do comentário pai deles. Em cadeia mesmo. Ficando assim: O que é bem ruim para organização, e confunde bastante a discussão. Eu não queria ter que instalar plugins de comentário apenas para [...]]]></description>
			<content:encoded><![CDATA[<p>Refiz recentemente o novo tema do blog da Locaweb:<br />
<a href="http://wbruno.com.br/2012/02/24/novo-tema-wordpress-em-html5-blog-da-locaweb/">http://wbruno.com.br/2012/02/24/novo-tema-wordpress-em-html5-blog-da-locaweb/</a></p>
<p>Acabei deixando passar em branco, a funcionalidade dos comentários Reply, aparecerem logo abaixo do comentário pai deles. Em cadeia mesmo.<br />
Ficando assim:<br />
<span id="more-1856"></span><br />
<a href="http://wbruno.com.br/wp-content/uploads/2012/03/Screen-shot-2012-03-08-at-7.58.31-PM.png" rel="lightbox[1856]"><img src="http://wbruno.com.br/wp-content/uploads/2012/03/Screen-shot-2012-03-08-at-7.58.31-PM-300x266.png" alt="" title="Screen shot 2012-03-08 at 7.58.31 PM" width="300" height="266" class="aligncenter size-medium wp-image-1864" /></a></p>
<p>O que é bem ruim para organização, e confunde bastante a discussão. Eu não queria ter que instalar plugins de comentário apenas para isso.<br />
Estudei um pouquinho o tema TwentyTeen, com a dica do @ThiagoCruz, e então:<br />
<a href="http://wbruno.com.br/wp-content/uploads/2012/03/Screen-shot-2012-03-08-at-7.58.54-PM.png" rel="lightbox[1856]"><img src="http://wbruno.com.br/wp-content/uploads/2012/03/Screen-shot-2012-03-08-at-7.58.54-PM-300x261.png" alt="" title="Screen shot 2012-03-08 at 7.58.54 PM" width="300" height="261" class="aligncenter size-medium wp-image-1865" /></a></p>
<p>É isso. Os códigos que adicionei estão abaixo:</p>
<p><strong>function.php</strong></p>
<pre name="code" class="php">
if ( ! function_exists( 'parent_comment' ) ) :
/**
 * Template for comments and pingbacks.
 *
 * To override this walker in a child theme without modifying the comments template
 * simply create your own twentyten_comment(), and that function will be used instead.
 *
 * Used as a callback by wp_list_comments() for displaying the comments.
 *
 * @since Twenty Ten 1.0
 */
function parent_comment( $comment, $args, $depth ) {
	$GLOBALS['comment'] = $comment;
	switch ( $comment->comment_type ) :
		case '' :
	?>
		&lt;li &lt;?php comment_class(); ?> id="comment-&lt;?php comment_ID() ?>"> &lt;?php echo get_avatar( $comment, 32 ); ?>

			&lt;cite>&lt;?php comment_text() ?>&lt;/cite>

			&lt;?php comment_type(_x('Coment&aacute;rio', 'noun'), __('Trackback'), __('Pingback')); ?>
			&lt;?php _e('por'); ?>
			&lt;?php comment_author_link() ?>
			&#8212;

			&lt;time datetime="&lt;?php echo $comment->comment_date; ?>">
				&lt;?php comment_date() ?>
				@ &lt;a href="#comment-&lt;?php comment_ID() ?>">
				&lt;?php comment_time() ?>
				&lt;/a>
			&lt;/time>
			&lt;?php edit_comment_link(__("Editar"), ' | '); ?>

			&lt;?php if ( $comment->comment_approved == '0' ) : ?>
				&lt;em class="comment-awaiting-moderation">&lt;?php _e( 'Your comment is awaiting moderation.' ); ?>&lt;/em>
			&lt;?php endif; ?>

			&lt;?php comment_reply_link( array_merge( $args, array( 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
		&lt;/li>

	&lt;?php
			break;
		case 'pingback'  :
		case 'trackback' :
	?>
	&lt;li class="post pingback">
		&lt;p>&lt;?php _e( 'Pingback:' ); ?> &lt;?php comment_author_link(); ?>&lt;?php edit_comment_link( __( '(Edit)' ), ' ' ); ?>&lt;/p>
	&lt;?php
			break;
	endswitch;
}
endif;
?></pre>
<p><strong>comments.php</strong></p>
<pre name="code" class="php">
&lt;?php if ( have_comments() ) : ?>
	&lt;ol id="commentlist">
		&lt;?php wp_list_comments( array( 'callback' => 'parent_comment' ) ); ?>
	&lt;/ol>
&lt;?php else : // If there are no comments yet ?>
	&lt;p>&lt;?php _e('Nenhum coment&aacute;rio ainda.'); ?>&lt;/p>
&lt;?php endif; ?>
</pre>
<p><strong>style.css</strong></p>
<pre name="code" class="css">#commentlist .children { margin-left: 25px; }</pre>
<p>Ahh, e sem se esquecer do novo input hidden, para o comentário reply saber quem é o pai dele:</p>
<p><strong>comments.php</strong> ou comment_form() [caso vc não tenha personalizado o form]</p>
<pre name="code" class="html">&lt;input type="hidden" name="comment_parent" id="comment_parent" value="&lt;?php if( isset( $_GET['replytocom'] ) ) echo $_GET['replytocom']; ?>" /></pre>
<p>=)</p>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/03/12/comentarios-wordpress-em-cadeia-respeitando-hierarquia-comentario-pai/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Post Colaborativo &#8211; Como você nomeia seus IDs e CLASSes no HTML/CSS ?</title>
		<link>http://wbruno.com.br/2012/03/08/post-colaborativo-como-voce-nomeia-seus-ids-classes-htmlcss/</link>
		<comments>http://wbruno.com.br/2012/03/08/post-colaborativo-como-voce-nomeia-seus-ids-classes-htmlcss/#comments</comments>
		<pubDate>Thu, 08 Mar 2012 13:24:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[class]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[frontend]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[id]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1846</guid>
		<description><![CDATA[Proposta diferente dessa vez. Eu quero ler você. Não vou começar dissertando sobre algum assunto baseado nas minhas experiências e estudos.. Vou construir o conteúdo com ajuda de todos os que comentarem neste tópico. Depois de colher e entender como alguns profissionais da área pensam, vou fazer um apanhado e concluir o assunto. Me conte, [...]]]></description>
			<content:encoded><![CDATA[<p>Proposta diferente dessa vez.</p>
<p>Eu quero ler você.<br />
<span id="more-1846"></span><br />
Não vou começar dissertando sobre algum assunto baseado nas minhas experiências e estudos..<br />
Vou construir o conteúdo com ajuda de todos os que comentarem neste tópico. Depois de colher e entender como alguns profissionais da área pensam, vou fazer um apanhado e concluir o assunto.</p>
<p>Me conte,<strong> como você nomeia</strong> seus IDs e CLASSes no HTML/CSS ?<br />
-> Prefere tentar representar oque aquele elemento faz na tela ?<br />
tipo.. #header, #footer, #coluna_porque_escolher.. ? (inglês ou em português hein?!)<br />
-> Prefere as vezes usar nomes genéricos como:<br />
#menu .first, #menu .last, #products .last, .. ?<br />
-> Separa palavras compostas com underline ? hífen ? camelCase ?<br />
#menu_interno, #menu-interno, #menuInterno ? </p>
<p>E principalmente, <strong>por que?</strong></p>
<p>Conto com você. Não importa o seu nível de conhecimento ou experiência. Toda ajuda é bem-vinda.</p>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/03/08/post-colaborativo-como-voce-nomeia-seus-ids-classes-htmlcss/feed/</wfw:commentRss>
		<slash:comments>39</slash:comments>
		</item>
		<item>
		<title>Meu CSS mínimo comum a todos os projetos que desenvolvo</title>
		<link>http://wbruno.com.br/2012/03/06/meu-css-minimo-comum-todos-os-projetos-desenvolvo/</link>
		<comments>http://wbruno.com.br/2012/03/06/meu-css-minimo-comum-todos-os-projetos-desenvolvo/#comments</comments>
		<pubDate>Tue, 06 Mar 2012 10:00:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[css]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1837</guid>
		<description><![CDATA[Gostaria de compartilhar, o meu reset.css, e as demais classes utilitárias e estilizações, que &#8220;sempre faço&#8221; inicialmente nos meus trabalhos. Não uso nenhum dos &#8220;consagrados reset.css&#8221;, porque considero gordura ao meu estilo de desenvolver. Apenas zerar margin e padding, e me deixar livre para definir as regras das minhas tags é o suficiente, e tenho [...]]]></description>
			<content:encoded><![CDATA[<p>Gostaria de compartilhar, o meu reset.css, e as demais classes utilitárias e estilizações, que &#8220;sempre faço&#8221; inicialmente nos meus trabalhos.</p>
<p>Não uso nenhum dos &#8220;consagrados reset.css&#8221;, porque considero gordura ao meu estilo de desenvolver. Apenas zerar margin e padding, e me deixar livre para definir as regras das minhas tags é o suficiente, e tenho trabalhado bem assim.</p>
<p>Tudo bem simples, a idéia é não encher a folha de coisas desnecessárias.<br />
<span id="more-1837"></span></p>
<pre name="code" class="css">
* { margin: 0; padding: 0; list-style: none; border: none; }

html, body { height: 100%; }
body,
input, select, textarea { font-size: 12px; font-family: Tahoma, sans-serif; color: #333; }

body { min-width: 300px; }

h1, h2, h3, h4, h5, h6 { }

a { text-decoration: none; color: #4b4d4d; }
a:hover { text-decoration: underline; }
p { margin-bottom: 15px; }

.content { width: 960px; margin: 0 auto; }
.fleft { float: left; }
.fright { float: right; }
.clear { clear: both; }

@media only screen and (max-width: 800px){
	.content { width: auto; }
	img { max-width: 100% !important; height: auto !important; }
}</pre>
<p>Uso meu blog como repositório também, então tá aqui. =)</p>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/03/06/meu-css-minimo-comum-todos-os-projetos-desenvolvo/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Script php para gerar hierarquia de classes dependendo da URL atual</title>
		<link>http://wbruno.com.br/2012/03/05/script-php-para-gerar-hierarquia-de-classes-dependendo-da-url-atual/</link>
		<comments>http://wbruno.com.br/2012/03/05/script-php-para-gerar-hierarquia-de-classes-dependendo-da-url-atual/#comments</comments>
		<pubDate>Mon, 05 Mar 2012 10:00:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[breadcrumb]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1829</guid>
		<description><![CDATA[Fiz um post semana passada, sobre como podemos melhor aproveitar o elemento body dos nossos sites: http://wbruno.com.br/2012/03/01/elemento-body-nos-nossos-sites-como-melhor-aproveita-lo/ E nele eu cito, que o &#8220;trabalho&#8221; do server-side, seria gerar essas classes no body, ou então nós mesmos fazer isso &#8220;na mão&#8221;, página por página. Sou preguiçoso então&#8230; Por exemplo, se a URL for: site.com.br/ ou site.com.br/index.html [...]]]></description>
			<content:encoded><![CDATA[<p>Fiz um post semana passada, sobre como podemos melhor aproveitar o elemento <strong>body</strong> dos nossos sites:</p>
<p><a href="http://wbruno.com.br/2012/03/01/elemento-body-nos-nossos-sites-como-melhor-aproveita-lo/" target="_blank">http://wbruno.com.br/2012/03/01/elemento-body-nos-nossos-sites-como-melhor-aproveita-lo/</a></p>
<p>E nele eu cito, que o <em>&#8220;trabalho&#8221;</em> do server-side, seria gerar essas classes no body, ou então nós mesmos fazer isso &#8220;na mão&#8221;, página por página.</p>
<p>Sou preguiçoso então&#8230;<br />
<span id="more-1829"></span><br />
Por exemplo, se a URL for:</p>
<p><u>site.com.br/</u> ou <u>site.com.br/index.html</u><br />
a classe do elemento body, deve ser:</p>
<pre name="code" class="html">&lt;body class="home"></pre>
<p>E para cada nível, a class deve refletir:<br />
<u>site.com.br/frutas.html</u></p>
<pre name="code" class="html">&lt;body class="frutas"></pre>
<p>Mas se começar a &#8220;complicar&#8221;, e mais níveis surgirem..</p>
<p><u>site.com.br/frutas/banana.html</u></p>
<pre name="code" class="html">&lt;body class="frutas banana"></pre>
<p>Ou:<br />
<u>site.com.br/frutas/banana/nanica.html</u></p>
<pre name="code" class="html">&lt;body class="frutas banana nanica"></pre>
<p>Para ser eficiente, a class do nosso body, deve refletir essa &#8220;realidade&#8221;.<br />
Criei um conjunto de funções em php, que fazem isso. Analisam a URL requisitada (REQUEST_URI), e devolvem essa estrutura:</p>
<pre name="code" class="php">&lt;?php

/**
 * @return boolean, true caso a URI seja a home do site
 */
function is_home(){
	return stripos( $_SERVER['REQUEST_URI'], 'index.html' )
		|| !stripos( $_SERVER['REQUEST_URI'], '.html' );
}
/**
 * @return string, class=""(html) de acordo com o URI atual
 */
function get_body_class(){
	if( is_home() ) return 'class="home"';

	$pieces = explode( '/', $_SERVER['REQUEST_URI'] );
	$class = Array();
	foreach( $pieces AS $part ){
		$class[] = str_replace( '.html', '', $part );
	}

	return 'class="'.implode( ' ', $class ).'"';
}
/**
 * @see get_body_class()
 */
function body_class(){ echo get_body_class(); }
</pre>
<p>Agora que terminei de escrever, percebi que você pode usar também para um <strong>bread crumb</strong>, ne?!<br />
Me diz o que você acha.<br />
É isso =)</p>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/03/05/script-php-para-gerar-hierarquia-de-classes-dependendo-da-url-atual/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Reiniciar apache no MAC OS</title>
		<link>http://wbruno.com.br/2012/03/02/reiniciar-apache-mac-os/</link>
		<comments>http://wbruno.com.br/2012/03/02/reiniciar-apache-mac-os/#comments</comments>
		<pubDate>Fri, 02 Mar 2012 19:11:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Não Classificados]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[mac]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1827</guid>
		<description><![CDATA[Opa, só para deixar aqui a linha de comando que reinicia o apache. sudo /usr/sbin/apachectl restart]]></description>
			<content:encoded><![CDATA[<p>Opa, só para deixar aqui a linha de comando que reinicia o apache.</p>
<pre name="code">sudo /usr/sbin/apachectl restart</pre>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/03/02/reiniciar-apache-mac-os/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>O elemento HTML body nos nossos sites, como melhor aproveitá-lo.</title>
		<link>http://wbruno.com.br/2012/03/01/elemento-body-nos-nossos-sites-como-melhor-aproveita-lo/</link>
		<comments>http://wbruno.com.br/2012/03/01/elemento-body-nos-nossos-sites-como-melhor-aproveita-lo/#comments</comments>
		<pubDate>Thu, 01 Mar 2012 15:00:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[body]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[html]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1811</guid>
		<description><![CDATA[Lhes apresento o elemento body: &#60;body> &#60;!-- todo o conteudo do site aqui dentro --> &#60;/body> Todos nós conhecemos. Mas será que estamos utilizando de verdade ele ? O body é o elemento no nosso documento responsável por ser o container de tudo que é conteúdo do site. Diferente do &#60;head>, oque está dentro do [...]]]></description>
			<content:encoded><![CDATA[<p>Lhes apresento o elemento <strong>body</strong>:</p>
<pre name="code" class="html">&lt;body>
&lt;!-- todo o conteudo do site aqui dentro -->
&lt;/body></pre>
<p>Todos nós conhecemos. Mas será que estamos utilizando <em>de verdade</em> ele ?</p>
<p>O <strong>body</strong> é o elemento no nosso documento responsável por ser o container <u>de tudo</u> que é conteúdo do site.<br />
Diferente do &lt;head>, oque está dentro do &lt;body> é oque fica/ou ficará disponível para visualização do visitante.</p>
<p>As informações que queremos transmitir. Títulos, Textos, Imagens..<br />
Até aqui, todos nós já usamos o body para isso, mas.. e <strong>o que mais</strong> podemos fazer com ele ?<br />
<span id="more-1811"></span><br />
Pode parecer absurdo falar isso, mas convém lembrar: o body é uma tag html! E como tal, aceita atributos:<br />
<a href="http://www.w3schools.com/tags/tag_body.asp" target="_blank">http://www.w3schools.com/tags/tag_body.asp</a></p>
<p>Os mais interessantes, são o <strong>id</strong> e a <strong>class</strong>. Vocês já tinham colocado um desses no body de algum site ?</p>
<pre name="code" class="html">&lt;body id="home"></pre>
<h2>Usar o body com um ID</h2>
<p>É uma proposta interessante, e nos ajuda a economizar alguns elementos de estruturação de layout de vez em quando.<br />
Por exemplo, aqueles layouts onde a home do site difere por poucas coisas das páginas internas, como: topo mais alto, rodapé inexistente..</p>
<p>Esse tipo de situação, podemos facilmente resolver usando o atributo ID no body.<br />
Sendo a home, estilizamos o topo diferente doque ele seria nas internas:</p>
<pre name="code" class="css">body#home #header { height: 200px; }
#header { height: 100px; }</pre>
<p>A marcação html fica intacta, evitamos, coisas como: <strong>#header_home</strong>..<br />
E isso nos levará a escrever um css mais bonito também. Afinal, fizemos um condicional no css!</p>
<h2>Usar o body com uma ou mais CLASSes</h2>
<p>Hum.. na verdade eu comecei explicando o ID, porém hoje em dia, eu prefiro </p>
<pre name="code" class="html">&lt;body class="home"></pre>
<p> do que com ID.</p>
<p>Pelo simples motivo de poder usar mais de uma. Com classes, temos todos os benefícios que citei do ID:</p>
<pre name="code" class="css">body.home #header { height: 200px; }
#header { height: 100px; }</pre>
<p> E é possível colocar mais de uma, veja:</p>
<pre name="code" class="html">&lt;body class="cursos html"></pre>
<p>A motivação disso, é imaginemos um menu dropdown.</p>
<pre name="code" class="html">
   &lt;li>Cursos
      &lt;ul>
         &lt;li>HTML&lt;/li>
         &lt;li>CSS&lt;/li>
         &lt;li>JavaScript&lt;/li>
      &lt;/ul>
    &lt;/li>
</pre>
<p>Assim cada página interna, teria uma combinação de class para o body diferente:<br />
class=&#8221;cursos html&#8221;, class=&#8221;cursos css&#8221;, class=&#8221;cursos javascript&#8221;..<br />
A vantagem disso, é que a class=&#8221;cursos&#8221;, é comum a todos eles, e no css podemos fazer facilmente um destaque naquele item de menu, se estivermos dentro de um dos filhos!</p>
<p>Mais uma vez, levamos o poder do css à outro nível!</p>
<p>Tendo a class <strong>html</strong>, <strong>css</strong>.. e sabendo que cada página interna terá somente um título H1, podemos por exemplo, fazer o H1 ser azul na página de HTML, ser vermelho na página de css, e ser de qq outra cor por padrão, nas páginas em que não definirmos nada.</p>
<pre name="code" class="css">.html h1 { color: #00f; }
.css h1 { color: #f00; }
h1 { color: #000; }</pre>
<p>A grande sacada disso é não precisarmos adicionar nada mais no html, além das respectivas classes no body.</p>
<h2>O body é pai de todo mundo</h2>
<p>Conhecendo o efeito cascata do css, e sabendo que tudo o que o visitante verá está dentro do body do documento, é melhor usar a herança do css para definir os padrões do site, como:</p>
<pre name="code" class="css">body { font-size: 12px; font-family: Tahoma, sans-serif; color: #333; }</pre>
<p>E porque o body ? pq afinal, todos os elementos posteriores herdarão dele, e isso tudo com uma especificidade bem baixa. Então não precisamos brigar para sobrescrever estilos.</p>
<p>Deve ter ficado implícito, mas quero ressaltar com uma ressalva: todos os elementos, menos os de formulário.<br />
Por algum motivo que desconheço, input, select e textarea, não herdam &#8216;naturalmente&#8217; definições de fonte declaradas no body.</p>
<pre name="code" class="css">body, input, select, textarea {
    font-size: 12px; font-family: Tahoma, sans-serif; color: #333;
}</pre>
<p>Com isso, cobrimos todas as tags, e não estragamos as definições padrões como, &lt;small> terá uma fonte menor que o body, &lt;h1> continua com uma fonte maior.. por esse motivo que não uso o seletor global * para esse trabalho.<br />
Ele aplica a todos os elementos, mas de forma &#8220;forçada&#8221;, elemento a elemento. E não por herança como ocorre qndo trabalhamos com o body.</p>
<p>A idéia é brigarmos menos com nós mesmos. E só sobrescrever poucas propriedades.<br />
Isso é ótimo por uma outra questão: não corremos o risco de &#8220;esquecer&#8221; de alguma tag, visto que com uma declaração simples, e aproveitando a herança do css, nós atingimos ela.<br />
Por este motivo não gosto daqueles css resets gigantescos e milagrosos, entretanto isso é assunto para um próximo post.</p>
<h2>O body aceita css!</h2>
<p>Sabe aquele fundo do topo com degradê, e aquela linha do header que vai de uma ponta a outra do browser? (100% width), então..<br />
aplica como background do body!<br />
Simples assim. Descartamos a necessidade de um #wrap_header, e jogamos em uma só imagem como background do body, pois ele mesmo já tem de graça para gente, 100% de largura da viewport.</p>
<p>Esse é apenas um exemplo, para tentar &#8220;abrir&#8221; a mente. As possibilidades são muitas.<br />
Às vezes precisamos rever coisas &#8220;óbvias&#8221; ou &#8220;básicas&#8221;, pois podem fazer coisas impressionantes.</p>
<p>Que tal ?</p>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/03/01/elemento-body-nos-nossos-sites-como-melhor-aproveita-lo/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Exemplo de uso do nth-child seletor css</title>
		<link>http://wbruno.com.br/2012/02/29/exemplo-de-uso-nth-child-seletor-css/</link>
		<comments>http://wbruno.com.br/2012/02/29/exemplo-de-uso-nth-child-seletor-css/#comments</comments>
		<pubDate>Wed, 29 Feb 2012 18:19:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[nth-child]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1808</guid>
		<description><![CDATA[Selecionar o terceiro elemento de cada lista, para alterar alguma coisa do css dele. Usar: .eq(3) é o mesmo que :nth-child(3), oq queremos é o 3n &#60;html> &#60;head> &#60;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">&#60;/script> &#60;script type="text/javascript"> jQuery(document).ready(function(){ jQuery('.lista li:nth-child(3n)').css('background','#f0f'); }); &#60;/script> &#60;style type="text/css"> .lista { width: 180px; } .lista li { background: #f00; margin: 5px; width: 50px; height: [...]]]></description>
			<content:encoded><![CDATA[<p>Selecionar o terceiro elemento de cada lista, para alterar alguma coisa do css dele.</p>
<p>Usar: .eq(3) é o mesmo que :nth-child(3), oq queremos é o <strong>3n</strong></p>
<pre name="code" class="html">
&lt;html>
&lt;head>
&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">&lt;/script>
&lt;script type="text/javascript">
jQuery(document).ready(function(){
	jQuery('.lista li:nth-child(3n)').css('background','#f0f');
});
&lt;/script>
&lt;style type="text/css">
.lista { width: 180px; }
.lista li {
	background: #f00;
	margin: 5px;
	width: 50px;
	height: 50px;
	float: left;
}
.clear { clear: both; }
&lt;/style>
&lt;/head>
&lt;body>
	&lt;h2 class="clear">Primeira lista&lt;/h2>
	&lt;ul class="lista">
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
	&lt;/ul>
	&lt;h2 class="clear">Segunda lista&lt;/h2>
	&lt;ul class="lista">
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
	&lt;/ul>
	&lt;h2 class="clear">Terceira lista&lt;/h2>
	&lt;ul class="lista">
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
		&lt;li>&lt;/li>
	&lt;/ul>
&lt;/body>
&lt;/html>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/02/29/exemplo-de-uso-nth-child-seletor-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Controlando show/hide com css &#8211; Deixando para o javascript apenas a troca de uma classe pai</title>
		<link>http://wbruno.com.br/2012/02/28/controlando-showhide-css-deixando-para-javascript-apenas-troca-de-uma-classe-pai/</link>
		<comments>http://wbruno.com.br/2012/02/28/controlando-showhide-css-deixando-para-javascript-apenas-troca-de-uma-classe-pai/#comments</comments>
		<pubDate>Tue, 28 Feb 2012 17:43:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[show hide]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1803</guid>
		<description><![CDATA[Boas =) A minha proposta aqui, é controlar toda a lógica do show/hide com css. Em vez de fazermos malabarismos com coisas como: document.getElementById("Carro").className = "invisivel"; document.getElementById("Moto").className = "invisivel"; document.getElementById("Pesados").className = "invisivel"; document.getElementById("Agrícolas").className = "invisivel"; document.getElementById("selecione").className = "invisivel"; document.getElementById(div).className = "visivel"; E ai, qndo tiver q mostrar mais de um elemento a cada option do [...]]]></description>
			<content:encoded><![CDATA[<p>Boas =)</p>
<p>A minha proposta aqui, é controlar toda a lógica do show/hide com css.<br />
Em vez de fazermos malabarismos com coisas como:<br />
<span id="more-1803"></span></p>
<pre name="code" class="javascript">
        document.getElementById("Carro").className = "invisivel";
        document.getElementById("Moto").className = "invisivel";
        document.getElementById("Pesados").className = "invisivel";
        document.getElementById("Agrícolas").className = "invisivel";
        document.getElementById("selecione").className = "invisivel";
        document.getElementById(div).className = "visivel";
</pre>
<p>E ai, qndo tiver q mostrar mais de um elemento a cada option do select, recorrer a colocar mais linhas/parâmetros no js.<br />
O javascript que proponho é o seguinte:</p>
<pre name="code" class="javascript">
function id( obj ){ return document.getElementById( obj ); }
window.onload = function(){
	id('escolha').onchange = function(){
		id('pai').className = this.value;
	}
}</pre>
<p>E conforme queiramos mais elementos a serem mostrados, ou mais regras, não temos que alterar absolutamente nada no js.<br />
Apenas no html, e no css.<br />
Veja que toda a lógica de mostrar/esconder, está no css:</p>
<pre name="code" class="css">
p, #lista li { display: none; }

.carros #palio,
.carros #punto,
.carros #gol,
.carros #volks { display: block; }

.animais #gato,
.animais #cao,
.animais #vet { display: block; }
/* deixei separado apenas para facilitar o entendimento */
.linguagens #ajax,
.linguagens #js,
.linguagens #css,
.linguagens #programador { display: block; }</pre>
<p>A primeira regra css, esconde tudo.<br />
As demais, vão dando block, conforme uma classe pai. Exatamente a que estamos alterando via js.</p>
<p>É isso. O que vc acha dessa abordagem ?</p>
<pre name="code" class="html">&lt;html>
&lt;head>
	&lt;title>Show/Hide com css&lt;/title>
&lt;script type="text/javascript">
function id( obj ){ return document.getElementById( obj ); }
window.onload = function(){
	id('escolha').onchange = function(){
		id('pai').className = this.value;
	}
}
&lt;/script>
&lt;style type="text/css">
p, #lista li { display: none; }

.carros #palio,
.carros #punto,
.carros #gol,
.carros #volks { display: block; }

.animais #gato,
.animais #cao,
.animais #vet { display: block; }

.linguagens #ajax,
.linguagens #js,
.linguagens #css,
.linguagens #programador { display: block; }

&lt;/style>
&lt;/head>
&lt;body>
	&lt;select name="escolha" id="escolha">
		&lt;option value="">Esconder todos&lt;/option>
		&lt;option value="carros">Carros&lt;/option>
		&lt;option value="animais">Animais&lt;/option>
		&lt;option value="linguagens">Linguagens&lt;/option>
	&lt;/select>

	&lt;div id="pai">
		&lt;ul id="lista">
			&lt;li id="palio">Palio&lt;/li>
			&lt;li id="punto">Punto&lt;/li>
			&lt;li id="gol">Gol&lt;/li>

			&lt;li id="gato">Gato&lt;/li>
			&lt;li id="cao">Cão&lt;/li>

			&lt;li id="ajax">AJAX&lt;/li>
			&lt;li id="js">JS&lt;/li>
			&lt;li id="css">CSS&lt;/li>
		&lt;/ul>&lt;!-- /lista -->

		&lt;p id="volks">Volks&lt;/p>

		&lt;p id="vet">Veterinária&lt;/p>

		&lt;p id="programador">Programador&lt;/p>
	&lt;/div>
&lt;/body>
&lt;/html></pre>
<h2><a href="http://wbruno.com.br/scripts/showhidecss.html" target="_blank">Demonstração</a></h2>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/02/28/controlando-showhide-css-deixando-para-javascript-apenas-troca-de-uma-classe-pai/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Listando encoding dos arquivos pelo terminal</title>
		<link>http://wbruno.com.br/2012/02/27/listando-encoding-dos-arquivos-pelo-terminal/</link>
		<comments>http://wbruno.com.br/2012/02/27/listando-encoding-dos-arquivos-pelo-terminal/#comments</comments>
		<pubDate>Mon, 27 Feb 2012 15:49:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[encoding]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[terminal]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1800</guid>
		<description><![CDATA[Um comando para listar pelo terminal, o encoding dos arquivos de determinada pasta. Mac-mini:lw_html5 william$ for file in *.php; do file --mime $file; done 404.php: text/x-php; charset=us-ascii archive.php: text/x-php; charset=utf-8 comments.php: text/x-php; charset=us-ascii footer.php: text/plain; charset=us-ascii functions.php: text/x-php; charset=us-ascii header.php: text/html; charset=us-ascii index.php: text/x-php; charset=utf-8 page.php: text/x-php; charset=utf-8 search.php: text/x-php; charset=utf-8 searchform.php: text/plain; charset=us-ascii sidebar.php: [...]]]></description>
			<content:encoded><![CDATA[<p>Um comando para listar pelo terminal, o encoding dos arquivos de determinada pasta.</p>
<pre name="code" class="bash">Mac-mini:lw_html5 william$ for file in *.php; do file --mime $file; done
404.php: text/x-php; charset=us-ascii
archive.php: text/x-php; charset=utf-8
comments.php: text/x-php; charset=us-ascii
footer.php: text/plain; charset=us-ascii
functions.php: text/x-php; charset=us-ascii
header.php: text/html; charset=us-ascii
index.php: text/x-php; charset=utf-8
page.php: text/x-php; charset=utf-8
search.php: text/x-php; charset=utf-8
searchform.php: text/plain; charset=us-ascii
sidebar.php: text/plain; charset=us-ascii
single.php: text/x-php; charset=utf-8</pre>
<p>É isso.<br />
=)</p>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/02/27/listando-encoding-dos-arquivos-pelo-terminal/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Novo tema WordPress em HTML5 do blog da Locaweb!</title>
		<link>http://wbruno.com.br/2012/02/24/novo-tema-wordpress-em-html5-blog-da-locaweb/</link>
		<comments>http://wbruno.com.br/2012/02/24/novo-tema-wordpress-em-html5-blog-da-locaweb/#comments</comments>
		<pubDate>Fri, 24 Feb 2012 10:00:30 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[framework wordpress]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1785</guid>
		<description><![CDATA[Acabei de colocar no ar o novo tema do blog da Locaweb. http://blog.locaweb.com.br/geral/novo-tema-do-blog-locaweb-e-um-presente-para-voce/ Eu fiz um FrameWork WP com base nesse tema, que tem Responsive Web Design, HTML5 semântico e limpo.. No post do blog da Locaweb, deixei um link para download desse tema base. Eu estou atuamente usando ele aqui no meu blog, com [...]]]></description>
			<content:encoded><![CDATA[<p>Acabei de colocar no ar o novo tema do blog da Locaweb.</p>
<p><a href="http://blog.locaweb.com.br/geral/novo-tema-do-blog-locaweb-e-um-presente-para-voce/" title="FrameWork HTML5 de tema para WordPress blog Locaweb">http://blog.locaweb.com.br/geral/novo-tema-do-blog-locaweb-e-um-presente-para-voce/</a><br />
<span id="more-1785"></span><br />
Eu fiz um FrameWork WP com base nesse tema, que tem Responsive Web Design, HTML5 semântico e limpo..</p>
<p>No post do blog da Locaweb, deixei um link para download desse tema base.<br />
Eu estou atuamente usando ele aqui no meu blog, com uma pequena customização de cores.</p>
<p>Use você também, comente sobre as tuas impressões, sugestões..</p>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/02/24/novo-tema-wordpress-em-html5-blog-da-locaweb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>window.history.pushState javascript &#8211; trocando a URL usando api html5 em páginas carregadas com ajax</title>
		<link>http://wbruno.com.br/2012/02/22/window-history-pushstate-javascript-trocando-url-usando-api-html5-em-paginas-carregadas-ajax/</link>
		<comments>http://wbruno.com.br/2012/02/22/window-history-pushstate-javascript-trocando-url-usando-api-html5-em-paginas-carregadas-ajax/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 23:29:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[AJAX]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[pushState]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1792</guid>
		<description><![CDATA[Bem simples, só editei o trecho que era necessário para enviar um history.pushState, no final da requisição ajax, que carrega a página em uma div, sem dar refresh no restante do site. http://wbruno.com.br/2011/05/27/navegacao-sem-refresh-%E2%80%93-carregando-conteudo-ajax-em-div-2 $.ajax({ url: href, success: function( response ){ //forçando o parser var response = $( '&#60;div>'+response+'&#60;/div>' ); var data = response.find('#content').html(); //apenas atrasando [...]]]></description>
			<content:encoded><![CDATA[<p>Bem simples, só editei o trecho que era necessário para enviar um <strong>history.pushState</strong>, no final da requisição ajax, que carrega a página em uma div, sem dar refresh no restante do site.</p>
<p><a href="http://wbruno.com.br/2011/05/27/navegacao-sem-refresh-%E2%80%93-carregando-conteudo-ajax-em-div-2/" target="_blank">http://wbruno.com.br/2011/05/27/navegacao-sem-refresh-%E2%80%93-carregando-conteudo-ajax-em-div-2</a></p>
<pre name="code" class="javascript:firstLine[18]">
			$.ajax({
				url: href,
				success: function( response ){
					//forçando o parser
					var response = $( '&lt;div>'+response+'&lt;/div>' );

					var data = response.find('#content').html();

					//apenas atrasando a troca, para mostrarmos o loading
					window.setTimeout( function(){
						content.fadeOut('slow', function(){
							content.html( data ).fadeIn();

							var title = response.find('title').text();
							window.history.pushState( href, title, href );
							document.title = title;
						});
					}, 500 );
				}
			});
</pre>
<p>Notem a linha:</p>
<pre name="code" class="javascript:firstLine[31]">
window.history.pushState( href, response.find('title'), href );</pre>
<p>É essa nova função que veio junto com o HTML5, que faz toda a mágica.<br />
Browsers antigos não implementam esse método.</p>
<p>Agora podemos parar de forçar a barra usando o document.location.hash, como nessa implementação aqui:<br />
<a href="http://wbruno.com.br/2011/11/25/carregando-conteudo-ajax-trocando-url-jquery/" target="_blank">http://wbruno.com.br/2011/11/25/carregando-conteudo-ajax-trocando-url-jquery/</a></p>
<h2><a href="http://wbruno.com.br/scripts/fotos2.html" target="_blank">Demonstração</a></h2>
<p>É isso. Dúvidas ? pergunte, comente!</p>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/02/22/window-history-pushstate-javascript-trocando-url-usando-api-html5-em-paginas-carregadas-ajax/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Flash chamando função javascript, e javascript chamando função do flash &#8211; ExternalInterface</title>
		<link>http://wbruno.com.br/2012/02/22/flash-chamando-funcao-javascript-javascript-chamando-funcao-flash-externalinterface/</link>
		<comments>http://wbruno.com.br/2012/02/22/flash-chamando-funcao-javascript-javascript-chamando-funcao-flash-externalinterface/#comments</comments>
		<pubDate>Wed, 22 Feb 2012 15:37:05 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[action script]]></category>
		<category><![CDATA[as]]></category>
		<category><![CDATA[externalinterface]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[swf]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1788</guid>
		<description><![CDATA[Boas galera! Precisei disso recentemente, e como não trabalho muito com flash, e nunca programei nada de verdade em ActionScript, pedi socorro ao mestre do flash: Thiago Cruz. No blog dele, ele já postou ótimos exemplos, de utilizar a class externalinterface, então deixo por aqui também, o exemplo do código fonte que ele fez para [...]]]></description>
			<content:encoded><![CDATA[<p>Boas galera!</p>
<p>Precisei disso recentemente, e como não trabalho muito com flash, e nunca programei nada de verdade em ActionScript, pedi socorro ao mestre do flash: <strong>Thiago Cruz</strong>.</p>
<p>No blog dele, ele já postou ótimos exemplos, de <a href="http://berseck.wordpress.com/2009/03/25/utilizando-classe-externalinterface-as2/" target="_blank" title="Utilizando classe externalInterface() AS2">utilizar a class externalinterface</a>, então deixo por aqui também, o exemplo do código fonte que ele fez para mim.<br />
<span id="more-1788"></span><br />
O <strong>javascript</strong> fica assim:</p>
<pre name="code" class="javascript">
function onFlashReady() {
    sendToAS("another test message");
}

function callJS(value) {
    onFlashReady();
    return "Hi Flash.";
}

function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    } else {
        return document[movieName];
    }
}

function sendToAS(value) {
    thisMovie("externalclass").callAS(value);
}
</pre>
<p>e o <strong>action script</strong>:</p>
<pre name="code" class="javascript">
import flash.external.*;

play();

System.security.allowDomain("*");

ExternalInterface.addCallback("callAS", this, func);
ExternalInterface.call("callJS", 1);

function func(n:Number) {
    gotoAndStop(n);
}
</pre>
<h2><a href="http://wbruno.com.br/scripts/externalclass.zip" target="_blank">Download ExternalClass.zip</a></h2>
<p>Vlw pela ajuda Thiago!!</p>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/02/22/flash-chamando-funcao-javascript-javascript-chamando-funcao-flash-externalinterface/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Adicionando widget de Últimos Posts com data no WordPress</title>
		<link>http://wbruno.com.br/2012/02/14/adicionando-widget-de-ultimos-posts-data-wordpress/</link>
		<comments>http://wbruno.com.br/2012/02/14/adicionando-widget-de-ultimos-posts-data-wordpress/#comments</comments>
		<pubDate>Tue, 14 Feb 2012 23:02:27 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/?p=1782</guid>
		<description><![CDATA[Registrando um widget do WordPress, para listar ultimos posts, com data. O widget padrão, não tem essa opção, então criei um novo bem simples. function ultimos_posts_display() { // print some HTML for the widget to display here echo '&#60;div class="sidebar-box ultimos-posts">&#60;strong>&#218;ltimos posts&#60;/strong> &#60;ul>'; $recent_posts = wp_get_recent_posts(); foreach( $recent_posts as $recent ){ echo '&#60;li>&#60;span>'.preg_replace( '/([0-9]{4})-([0-9]{2})-([0-9]{2})([\s0-9:]+)?/', '$3-$2-$1', [...]]]></description>
			<content:encoded><![CDATA[<p>Registrando um widget do WordPress, para listar ultimos posts, com data.<br />
O widget padrão, não tem essa opção, então criei um novo bem simples.</p>
<p><span id="more-1782"></span></p>
<pre name="code" class="php">function ultimos_posts_display() {
	// print some HTML for the widget to display here
	echo '&lt;div class="sidebar-box ultimos-posts">&lt;strong>&Uacute;ltimos posts&lt;/strong>
	&lt;ul>';

	$recent_posts = wp_get_recent_posts();
	foreach( $recent_posts as $recent ){
		echo '&lt;li>&lt;span>'.preg_replace( '/([0-9]{4})-([0-9]{2})-([0-9]{2})([\s0-9:]+)?/', '$3-$2-$1', $recent['post_date'] ).'&lt;/span>
		&lt;a href="' . get_permalink($recent["ID"]) . '" title="Look '.$recent["post_title"].'" >' .   $recent["post_title"].'&lt;/a>&lt;/li> ';
	}

	echo '&lt;/ul>&lt;/div>';
}

wp_register_sidebar_widget(
	'ultimos_posts_1',        // your unique widget id
	'Ultimos posts',          // widget name
	'ultimos_posts_display',  // callback function
	array(                  // options
		'description' => 'Widget dos ultimos posts com data'
	)
);</pre>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/02/14/adicionando-widget-de-ultimos-posts-data-wordpress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Album de fotos com javascript &#8211; simples aplicação de esconde mostra</title>
		<link>http://wbruno.com.br/2012/02/02/album-de-fotos-javascript-simples-aplicacao-de-esconde-mostra/</link>
		<comments>http://wbruno.com.br/2012/02/02/album-de-fotos-javascript-simples-aplicacao-de-esconde-mostra/#comments</comments>
		<pubDate>Thu, 02 Feb 2012 19:50:50 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[HTML]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[album]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/blog/?p=1767</guid>
		<description><![CDATA[Boas!! apenas para deixar registrado mesmo.. Album de fotos, baseado em um escode/mostra, com a propriedade display. Fiz em javascript puro, em poucos minutos. Foi mais dificil achar as imagens, e mais trabalhoso redimensionar elas, do que fazer o código js.. hehe Enfim, online: Demonstração script usado: &#60;script type="text/javascript"> function id( el ){ return document.getElementById( [...]]]></description>
			<content:encoded><![CDATA[<p>Boas!!<br />
apenas para deixar registrado mesmo..<br />
<span id="more-1767"></span></p>
<p>Album de fotos, baseado em um escode/mostra, com a propriedade display.<br />
Fiz em javascript puro, em poucos minutos. Foi mais dificil achar as imagens, e mais trabalhoso redimensionar elas, do que fazer o código js.. hehe</p>
<p>Enfim, online:</p>
<h2><a href="http://wbruno.com.br/scripts/album-disney.html" target="_blank">Demonstração</a></h2>
<p>script usado:</p>
<pre name="code" class="javascript">
&lt;script type="text/javascript">
function id( el ){
	return document.getElementById( el );
}
function hide_all(){
	var els = id('content').getElementsByTagName('ul');

	for( var i=0; i&lt;els.length; i++ )
	{
		els[i].style.display = 'none';
	}
}
/* http://www.javascriptkit.com/jsref/event.shtml */
function disablelink( e ){
	var evt = window.event || e
	if (evt.preventDefault) //supports preventDefault?
		evt.preventDefault()
	else //IE browser
		return false
}
function palco( src ){
	id('palco').innerHTML = '&lt;img src="'+src+'" alt="" />';
}
window.onload = function(){
	hide_all();
	var as = id('lista').getElementsByTagName('a');
	for( var i=0; i&lt;as.length; i++ )
	{
		as[i].onclick = function( e ){
			hide_all();
			var id_el = this.href.split('#')

			id( id_el[1] ).style.display = 'block';
			return disablelink( e );
		}
	}
	var as = id('content').getElementsByTagName('a');
	for( var i=0; i&lt;as.length; i++ )
	{
		as[i].onclick = function( e ){
			palco( this.href )
			return disablelink( e );
		}
	}
}
&lt;/script>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/02/02/album-de-fotos-javascript-simples-aplicacao-de-esconde-mostra/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Reescrevendo uma função nativa do javascript &#8211; apenas para não esquecermos que é possível.</title>
		<link>http://wbruno.com.br/2012/02/01/reescrevendo-uma-funcao-nativa-javascript-apenas-para-nao-esquecermos-e-possivel/</link>
		<comments>http://wbruno.com.br/2012/02/01/reescrevendo-uma-funcao-nativa-javascript-apenas-para-nao-esquecermos-e-possivel/#comments</comments>
		<pubDate>Wed, 01 Feb 2012 21:21:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/blog/?p=1765</guid>
		<description><![CDATA[&#60;script type="text/javascript"> var _write = document.write; document.write('1');//vai funcionar normal document.write = function(){ //não faz nada } document.write('2');//não vai funcionar document.write('2');//não vai funcionar document.write('2');//não vai funcionar document.write('2');//não vai funcionar document.write('2');//não vai funcionar document.write = _write; document.write('3');//voltou a funcionar &#60;/script>]]></description>
			<content:encoded><![CDATA[<pre name="code" class="javascript">
&lt;script type="text/javascript">
var _write = document.write;
document.write('1');//vai funcionar normal

document.write = function(){
        //não faz nada
}
document.write('2');//não vai funcionar
document.write('2');//não vai funcionar
document.write('2');//não vai funcionar
document.write('2');//não vai funcionar
document.write('2');//não vai funcionar

document.write = _write;
document.write('3');//voltou a funcionar
&lt;/script>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/02/01/reescrevendo-uma-funcao-nativa-javascript-apenas-para-nao-esquecermos-e-possivel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Princípio de carousel de imagens com jQuery &#8211; Criando um plugin simples</title>
		<link>http://wbruno.com.br/2012/01/26/principio-de-carousel-de-imagens-jquery-criando-um-plugin-simples/</link>
		<comments>http://wbruno.com.br/2012/01/26/principio-de-carousel-de-imagens-jquery-criando-um-plugin-simples/#comments</comments>
		<pubDate>Thu, 26 Jan 2012 09:00:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Opinião]]></category>
		<category><![CDATA[carousel]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Plugin]]></category>

		<guid isPermaLink="false">http://wbruno.com.br/blog/?p=1748</guid>
		<description><![CDATA[Nos últimos meses, tenho usado bastante o efeito de carousel. Como todo programador, me incomodo de ter que &#8216;me repetir&#8217;. Ou ter que repensar uma lógica que já resolvi uma vez. Nem sempre &#8216;temos tempo&#8217; de parar, analisar e otimizar oque estamos fazendo. Porém, devemos fazer isso. Fiz vários tipos de carouseis, porém por serem [...]]]></description>
			<content:encoded><![CDATA[<p>Nos últimos meses, tenho usado bastante o efeito de carousel.<br />
Como todo programador, me incomodo de ter que &#8216;me repetir&#8217;. Ou ter que repensar uma lógica que já resolvi uma vez.</p>
<p>Nem sempre &#8216;temos tempo&#8217; de parar, analisar e otimizar oque estamos fazendo.<br />
Porém, <strong>devemos</strong> fazer isso.<br />
<span id="more-1748"></span><br />
Fiz vários tipos de carouseis, porém por serem diferentes um dos outros, e alguns possuirem algumas peculiaridades, configurações extras, estilizações fora dos padrões, acabei fazendo os meus próprios códigos, e não usando nenhum plugin pronto.</p>
<p>Nesse post, vou deixar o start de um plugin de jQuery, que rapidamente fiz aqui.<br />
Muitas melhorias precisam ser feitas, como:<br />
-> possibilitar scroll vertical<br />
-> não limitar a marcação a ser usada<br />
-> permitir uso do easing..</p>
<p>e por ai vai.. nisso, eu acabaria recriando o cycle(ou chegando perto do efeito Hz dele). Não é essa a intenção.<br />
Até agora é para ser simples mesmo, e muito mais simples de usar também.</p>
<p>Como todos os meus efeitos, esse não foge do meu padrão: resolvi as partes mais complicadas no css.<br />
O js é simples. O instanciamento ainda mais.</p>
<p>É isso, sem mais, segue o código, e logo abaixo a demonstração.<br />
A grande &#8216;sacada&#8217;, é deixar o plugin se virar com a animação, (setas prev e next), e termos uma chamada simples e limpa assim:</p>
<pre name="code" class="javascript:firstLine[48]">
/* fim plugin carousel */
jQuery(document).ready(function(){
	jQuery('#slide').carousel();
	jQuery('#slide2').carousel();
});
</pre>
<h2><a href="http://wbruno.com.br/scripts/simple_carousel.html" target="_blank">Demonstração</a></h2>
<p>=) Vejam como fiz:</p>
<pre name="code" class="html">
&lt;html>
&lt;head>
&lt;script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">&lt;/script>
&lt;script type="text/javascript">
/* carousel */
jQuery.fn.carousel = function( settings ){
	var $this = jQuery( this );
	var defaults = {
		prev: '.nav-left',
		next: '.nav-right',
		pos: 0,
		speed: 1000
	}
	settings = jQuery.extend(defaults, settings); 

	var lis = $this.find('li');
	var width_li = lis.eq(0).width()+ parseInt( lis.eq(0).css('marginLeft') )+parseInt( lis.eq(0).css('marginRight') );
	var ul = $this.find('ul');

	var prev = $this.find( settings.prev );
	var next = $this.find( settings.next );

	ul.css({width: (width_li*lis.length)+'px'});

	/* .nav-left */
	prev.click(function(){
		if( settings.pos>0 ){
			settings.pos--;
			_move( ul, settings.pos, width_li, settings.speed );
		}
	});
	/* .nav-right */
	next.click(function(){
		if( lis.length-1>settings.pos ){
			settings.pos++;
			_move( ul, settings.pos, width_li, settings.speed );
		}
	});

	/* funcoes privadas */
	_move = function( ul, pos, width_li, speed ){
		var new_left =  -1*pos*width_li;
		ul.animate({left:new_left+'px'},settings.speed);
	}

	return $this;
};
/* fim plugin carousel */
jQuery(document).ready(function(){
	jQuery('#slide').carousel();
	jQuery('#slide2').carousel();
});
&lt;/script>
&lt;style type="text/css">
* { margin: 0; padding: 0; }
#slide { width: 460px; height: 300px; }
	#slide li { width: 460px; height: 300px; }
#slide2 { width: 140px; height: 105px; padding: 10px 25px; background: #000; }
	#slide2 li { width: 140px; height: 105px; }
hr { margin: 50px; }

/* css do plugin */
.carousel { position: relative; }
.overflow { overflow: hidden; height: 100%; position: relative; }
.carousel ul { position: absolute; top: 0; left: 0; }
.carousel li { float: left; }
.nav { position: absolute; top: 50%; z-index: 3;
	background: url('images/nav.png') no-repeat;
	width: 36px; height: 36px; margin-top: -18px;
	cursor: pointer;
}
.nav-left { left: 10px; }
.nav-right { right: 10px; background-position: right top; }
	.nav-left:hover { background-position: left -36px; }
	.nav-right:hover { background-position: right -36px; }
/* css do plugin */
&lt;/style>
&lt;/head>
&lt;body>

	&lt;div id="slide" class="carousel">
		&lt;div class="nav nav-left">&lt;/div>
		&lt;div class="overflow">
			&lt;ul>
				&lt;li>&lt;img src="images/1.jpg" alt="" />&lt;/li>
				&lt;li>&lt;img src="images/2.jpg" alt="" />&lt;/li>
				&lt;li>&lt;img src="images/3.jpg" alt="" />&lt;/li>
				&lt;li>&lt;img src="images/4.jpg" alt="" />&lt;/li>
				&lt;li>&lt;img src="images/5.jpg" alt="" />&lt;/li>
			&lt;/ul>
		&lt;/div>
		&lt;div class="nav nav-right">&lt;/div>
	&lt;/div>&lt;!-- /slide -->

	&lt;hr />

	&lt;div id="slide2" class="carousel">
		&lt;div class="nav nav-left">&lt;/div>
		&lt;div class="overflow">
			&lt;ul>
				&lt;li>&lt;img src="images/mini1.jpg" alt="" />&lt;/li>
				&lt;li>&lt;img src="images/mini2.jpg" alt="" />&lt;/li>
				&lt;li>&lt;img src="images/mini3.jpg" alt="" />&lt;/li>
				&lt;li>&lt;img src="images/mini4.jpg" alt="" />&lt;/li>
			&lt;/ul>
		&lt;/div>
		&lt;div class="nav nav-right">&lt;/div>
	&lt;/div>&lt;!-- /slide -->
&lt;/body>
&lt;/html>
</pre>
]]></content:encoded>
			<wfw:commentRss>http://wbruno.com.br/2012/01/26/principio-de-carousel-de-imagens-jquery-criando-um-plugin-simples/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Dynamic page generated in 0.777 seconds. -->
<!-- Cached page generated by WP-Super-Cache on 2012-03-27 02:06:56 -->
<!-- Compression = gzip -->
