<?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>Guilherme Müller &#124; Freelance Front-end Developer</title>
	<atom:link href="http://guilhermemuller.com.br/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://guilhermemuller.com.br/blog</link>
	<description>Artigos e tutoriais sobre Front-end Design, HTML, CSS e Javascript</description>
	<lastBuildDate>Wed, 02 May 2012 11:10:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Ícones, background e CSS</title>
		<link>http://guilhermemuller.com.br/blog/2012/04/17/icones-background-e-css/</link>
		<comments>http://guilhermemuller.com.br/blog/2012/04/17/icones-background-e-css/#comments</comments>
		<pubDate>Tue, 17 Apr 2012 15:05:27 +0000</pubDate>
		<dc:creator>Guilherme Müller</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://guilhermemuller.com.br/blog/?p=732</guid>
		<description><![CDATA[Neste tutorial irei mostrar uma forma de combinar ícones com classes CSS reutilizáveis para uso em interfaces variadas. Pessoalmente, utilizo estas técnicas nas minhas interfaces administrativas, entre outras situações. Para este tutorial estarei utilizando o famoso iconset Silk do site famfamfam.com. Faça o download dos arquivos utilizados neste tutorial clicando aqui. Combinando Classes CSS Você [...]]]></description>
			<content:encoded><![CDATA[<p>Neste tutorial irei mostrar uma forma de combinar ícones com classes CSS reutilizáveis para uso em interfaces variadas. Pessoalmente, utilizo estas técnicas nas minhas interfaces administrativas, entre outras situações.<span id="more-732"></span></p>
<p>Para este tutorial estarei utilizando o famoso iconset <a href="http://famfamfam.com/lab/icons/">Silk do site famfamfam.com</a>.</p>
<p><a href="http://guilhermemuller.com.br/tutoriais/icones-background.rar">Faça o download dos arquivos utilizados neste tutorial clicando aqui.</a></p>
<h3>Combinando Classes CSS</h3>
<p>Você sabia que podemos combinar classes CSS umas com as outras? Apesar de ser algo óbvio para muita gente, vários web designers ainda não utilizam as vantagens desta técnica.</p>
<p>Além da combinação de classes, iremos usar também o seletor de atributo <code>[]</code>, que permite selecionar qualquer atributo de uma tag HTML.</p>
<p>Vamos começar com um link de exemplo abaixo:</p>
<p>[html]<br />
&lt;a class=&#8221;icone&#8221; href=&#8221;arquivo.pdf&#8221;&gt;Download do PDF&lt;/a&gt;<br />
[/html]</p>
<p>Podemos colocar um ícone de arquivo PDF do nosso banco de ícones com o seguinte código CSS:</p>
<p>[css]<br />
.icone {<br />
padding-left: 22px;<br />
background: url(acrobat.png) no-repeat left center;<br />
text-decoration: none;<br />
}<br />
[/css]</p>
<p><a href="http://guilhermemuller.com.br/tutoriais/icones-background/1.html">Veja o resultado aqui.</a></p>
<p>Utilizando a propriedade background e um pouco de padding, conseguimos o efeito desejado. Porém, existem formas de transformar isso em um sistema reutilizável e mais flexível.</p>
<p>Vamos utilizar a seguinte lista de links como exemplo:</p>
<p>[html]<br />
&lt;ul&gt;<br />
&lt;li&gt;<br />
&lt;a class=&#8221;icone pdf&#8221; href=&#8221;arquivo.pdf&#8221;&gt;Download do PDF&lt;/a&gt;<br />
&lt;/li&gt;<br />
&lt;li&gt;<br />
&lt;a class=&#8221;icone doc&#8221; href=&#8221;arquivo.doc&#8221;&gt;Download do arquivo Word&lt;/a&gt;<br />
&lt;/li&gt;<br />
&lt;li&gt;<br />
&lt;a class=&#8221;icone xls&#8221; href=&#8221;arquivo.xls&#8221;&gt;Download do arquivo Excel&lt;/a&gt;<br />
&lt;/li&gt;<br />
&lt;/ul&gt;<br />
[/html]</p>
<p>Combinando a classe &#8220;icone&#8221; com outras, como <em>pdf</em> ou <em>doc</em>, criamos um pequeno e simples sistema de classes reutilizáveis. Veja o código CSS:</p>
<p>[css]<br />
.icone {<br />
padding-left: 22px;<br />
background: no-repeat left center;<br />
text-decoration: none;<br />
}</p>
<p>.icone.pdf {<br />
background-image: url(acrobat.png);<br />
}</p>
<p>.icone.doc {<br />
background-image: url(page_white_word.png);<br />
}</p>
<p>.icone.xls {<br />
background-image: url(page_white_excel.png);<br />
}<br />
[/css]</p>
<p><a title="Grupo de Discussão de HTML, CSS e Javascript" href="http://guilhermemuller.com.br/tutoriais/icones-background/2.html">Veja o resultado aqui.</a></p>
<p>E se quisermos utilizar os links fora de uma lista? Podemos usar <code>inline-block</code> na propriedade <code>display</code>, que faz com que os links se comportem como bloco, porém sem perder a formatação em linha, assim respeitando corretamente margens e padding sem a necessidade de se utilizar flutuação. Código abaixo:</p>
<p>[css]<br />
.icone {<br />
padding-left: 22px;<br />
background: no-repeat left center;<br />
text-decoration: none;<br />
display: inline-block;<br />
margin-right: 1em;<br />
}<br />
[/css]</p>
<p><a href="http://guilhermemuller.com.br/tutoriais/icones-background/3.html">Veja o resultado aqui.</a></p>
<p>Utilizando as vantagens da combinação de classes, podemos também criar uma classe &#8220;esconde-texto&#8221;, para que possamos trabalhar apenas com os ícones, apenas adicionando uma classe e sem mudar mais nada no markup. HTML:</p>
<p>[html]<br />
&lt;a href=&#8221;arquivo.pdf&#8221;&gt;Download do PDF&lt;/a&gt;<br />
&lt;a href=&#8221;arquivo.doc&#8221;&gt;Download do arquivo Word&lt;/a&gt;<br />
&lt;a href=&#8221;arquivo.xls&#8221;&gt;Download do arquivo Excel&lt;/a&gt;<br />
[/html]</p>
<p>E CSS:</p>
<p>[css]<br />
.icone {<br />
padding-left: 22px;<br />
background: no-repeat left center;<br />
text-decoration: none;<br />
display: inline-block;<br />
margin-right: 1em;<br />
min-height: 16px; /* altura dos ícones */<br />
}</p>
<p>.esconde-texto {<br />
width: 16px;<br />
height: 16px;<br />
overflow: hidden;<br />
text-indent: -9000px;<br />
padding: 0;<br />
}<br />
[/css]</p>
<p><a href="http://guilhermemuller.com.br/tutoriais/icones-background/4.html">Veja o resultado aqui.</a></p>
<h3>Selecionando atributos</h3>
<p>Por fim, uma alternativa é é utilizar o seletor de atributo <code>[]</code> para deixarmos o código ainda mais limpo. Os seletores de atributo em si possuem suporte amplo nos navegadores (exceto IE6, é claro), mas aqui irei usar um específico de CSS3. Portanto, é necessário verificar o suporte para os principais navegadores. Com o seletor <code>[$=]</code> conseguimos verificar se o valor de um atributo termina com determinada sequência de caracteres. Ou seja, conseguimos detectar a extensão do arquivo.</p>
<p>Código HTML:</p>
<p>[html]<br />
&lt;a href=&#8221;arquivo.pdf&#8221;&gt;Download do PDF&lt;/a&gt;<br />
&lt;a href=&#8221;arquivo.doc&#8221;&gt;Download do arquivo Word&lt;/a&gt;<br />
&lt;a href=&#8221;arquivo.xls&#8221;&gt;Download do arquivo Excel&lt;/a&gt;<br />
[/html]</p>
<p>E CSS:</p>
<p>[css]<br />
.icone[href$='.pdf'] {<br />
background-image: url(acrobat.png);<br />
}</p>
<p>.icone[href$='.doc'] {<br />
background-image: url(page_white_word.png);<br />
}</p>
<p>.icone[href$='.xls'] {<br />
background-image: url(page_white_excel.png);<br />
}<br />
[/css]</p>
<p><a href="http://guilhermemuller.com.br/tutoriais/icones-background/5.html">Veja o exemplo final da técnica aqui.</a></p>
<p>Concluindo, a combinação de classes CSS traz muita flexibilidade para o desenvolvimento de interfaces. Como há muita reutilização de elementos, entre links, botões, menus e outros, este tipo de técnica economiza tempo e deixa o site mais fãcil de manter. Inclusive, é algo portátil e que pode ser transportado facilmente para outros sites. Pessoalmente, mantenho snippets semelhantes a estes no meu arquivo CSS base quando inicio um novo projeto.</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://guilhermemuller.com.br/blog/2012/04/17/icones-background-e-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vida Leve</title>
		<link>http://guilhermemuller.com.br/blog/2012/04/10/vida-leve/</link>
		<comments>http://guilhermemuller.com.br/blog/2012/04/10/vida-leve/#comments</comments>
		<pubDate>Tue, 10 Apr 2012 12:25:10 +0000</pubDate>
		<dc:creator>Guilherme Müller</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://guilhermemuller.com.br/blog/?p=751</guid>
		<description><![CDATA[Criação, front-end e programação: Guilherme Müller]]></description>
			<content:encoded><![CDATA[<p>Criação, front-end e programação: Guilherme Müller</p>
]]></content:encoded>
			<wfw:commentRss>http://guilhermemuller.com.br/blog/2012/04/10/vida-leve/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Produto Teste</title>
		<link>http://guilhermemuller.com.br/blog/2012/03/27/produto-teste/</link>
		<comments>http://guilhermemuller.com.br/blog/2012/03/27/produto-teste/#comments</comments>
		<pubDate>Tue, 27 Mar 2012 14:43:56 +0000</pubDate>
		<dc:creator>Guilherme Müller</dc:creator>
				<category><![CDATA[Garage Sale]]></category>

		<guid isPermaLink="false">http://guilhermemuller.com.br/blog/?p=747</guid>
		<description><![CDATA[Teste]]></description>
			<content:encoded><![CDATA[<p>Teste</p>
]]></content:encoded>
			<wfw:commentRss>http://guilhermemuller.com.br/blog/2012/03/27/produto-teste/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Grupo de Discussão de HTML, CSS e Javascript</title>
		<link>http://guilhermemuller.com.br/blog/2012/03/26/grupo-de-discussao-de-html-css-e-javascript/</link>
		<comments>http://guilhermemuller.com.br/blog/2012/03/26/grupo-de-discussao-de-html-css-e-javascript/#comments</comments>
		<pubDate>Mon, 26 Mar 2012 14:25:08 +0000</pubDate>
		<dc:creator>Guilherme Müller</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://guilhermemuller.com.br/blog/?p=740</guid>
		<description><![CDATA[Seguindo os comentários e discussões que surgiram no meu post mais lido, achei interessante a ideia de criar um grupo de discussão via e-mail sobre os assuntos que compõem o desenvolvimento de frontend, principalmente o trabalho com HTML, CSS e Javascript. Convido a todos a entrarem e participarem das discussões no grupo: https://groups.google.com/forum/?fromgroups#!forum/html-css-js-brasil Compartilhem técnicas, [...]]]></description>
			<content:encoded><![CDATA[<p>Seguindo os comentários e discussões que surgiram no meu <a title="Como Fazer uma Imagem de Fundo Preencher a Tela Inteira" href="http://guilhermemuller.com.br/blog/2011/06/08/como-fazer-uma-imagem-de-fundo-preencher-a-tela-inteira/">post mais lido</a>, achei interessante a ideia de criar um grupo de discussão via e-mail sobre os assuntos que compõem o desenvolvimento de frontend, principalmente o trabalho com HTML, CSS e Javascript.</p>
<p>Convido a todos a entrarem e participarem das discussões no grupo:<br />
<a title="HTML CSS JS Brasil" href="https://groups.google.com/forum/?fromgroups#!forum/html-css-js-brasil">https://groups.google.com/forum/?fromgroups#!forum/html-css-js-brasil</a></p>
<p>Compartilhem técnicas, tutoriais e tirem suas dúvidas!</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://guilhermemuller.com.br/blog/2012/03/26/grupo-de-discussao-de-html-css-e-javascript/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Uma Página HTML5 Básica</title>
		<link>http://guilhermemuller.com.br/blog/2012/01/12/uma-pagina-html5-basica/</link>
		<comments>http://guilhermemuller.com.br/blog/2012/01/12/uma-pagina-html5-basica/#comments</comments>
		<pubDate>Thu, 12 Jan 2012 11:31:03 +0000</pubDate>
		<dc:creator>Guilherme Müller</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Tutoriais]]></category>

		<guid isPermaLink="false">http://guilhermemuller.com.br/blog/?p=660</guid>
		<description><![CDATA[Com o HTML5, muito ficou simplificado na hora de iniciar um documento HTML. Neste post iremos analisar o mínimo de código que precisamos para um documento HTML5. Todo o código aqui mostrado pode ser utilizado hoje, pois devido à natureza &#8220;tolerante&#8221; dos navegadores, não irá causar nenhum problema de compatibilidade (e é código HTML5 válido). [...]]]></description>
			<content:encoded><![CDATA[<p>Com o HTML5, muito ficou simplificado na hora de iniciar um documento HTML. Neste post iremos analisar o mínimo de código que precisamos para um documento HTML5.</p>
<p><span id="more-660"></span></p>
<p>Todo o código aqui mostrado pode ser utilizado hoje, pois devido à natureza &#8220;tolerante&#8221; dos navegadores, não irá causar nenhum problema de compatibilidade (e é código HTML5 válido). Neste documento também estarei utilizando a sintaxe do HTML, e não do XHTML, portanto as tags que auto-fecham não terão a barra &#8220;/&#8221; no final (mas nada impede de utilizar a sintaxe XHTML).</p>
<p>O que iremos incluir no documento:</p>
<ol>
<li>DOCTYPE (para que o navegador reconheça que deve funcionar no &#8220;standards mode&#8221;)</li>
<li>Tag <code>html</code> com o atributo <code>lang</code>, para identificar a língua na qual o conteúdo do documento será escrito</li>
<li>Tag <code>head</code>, com as informações de cabeçalho não visíveis da página</li>
<li>Tag <code>meta</code> especificando a codificação da página (charset)</li>
<li>Tag <code>title</code> com o título da página</li>
<li>Tag <code>body</code> com o conteúdo da página</li>
</ol>
<p>Vamos começar com o doctype:</p>
<p>[html]&lt;!doctype html&gt;[/html]</p>
<p>Bem simples, não? Este doctype até dá para decorar, ao contrário dos que utilizávamos antes. Perceba que não há uma versão do HTML especificada no doctype, o que o torna um doctype geral para qualquer versão do HTML. A sua única função é &#8220;ligar&#8221; o modo de padrões web (standards mode) dos navegadores.</p>
<p>Segundo, abrimos a tag <code>html</code>:</p>
<p>[html]&lt;html lang=&#8221;pt-BR&#8221;&gt;[/html]</p>
<p>Perceba o atributo <code>lang</code>, diferente do que era feito no XHTML para identificar a língua.</p>
<p>Em seguida, a tag <code>head</code>:</p>
<p>[html]&lt;head&gt;[/html]</p>
<p>Dentro, a tag <code>meta</code> especificando a codificação (também consideravelmente mais simples que antes):</p>
<p>[html]&lt;meta charset=&#8221;UTF-8&#8243;&gt;[/html]</p>
<p>Em seguida, a tag <code>title</code> que já conhecemos bem:</p>
<p>[html]&lt;title&gt;Uma Página HTML5 Básica&lt;/title&gt;[/html]</p>
<p>Por fim, a tag <code>body</code>, com o conteúdo da página:</p>
<p>[html]<br />
&lt;body&gt;<br />
&lt;!&#8211; conteúdo da página &#8211;&gt;<br />
&lt;/body&gt;<br />
[/html]</p>
<p>Abaixo, o código completo:</p>
<p>[html]<br />
&lt;!doctype html&gt;<br />
&lt;html lang=&#8221;pt-BR&#8221;&gt;<br />
  &lt;head&gt;<br />
    &lt;meta charset=&#8221;UTF-8&#8243;&gt;<br />
    &lt;title&gt;Uma Página HTML5 Básica&lt;/title&gt;<br />
  &lt;/head&gt;<br />
  &lt;body&gt;<br />
    &lt;!&#8211; conteúdo da página &#8211;&gt;<br />
  &lt;/body&gt;<br />
&lt;/html&gt;<br />
[/html]</p>
<h3>Inserindo CSS e Javascript</h3>
<p>Para finalizar, o código para inserir CSS e Javascript também fica um pouco mais simples, não precisando ser especificado o atributo <code>type</code>:</p>
<p>[html]<br />
&lt;script src=&#8221;arquivo.js&#8221;&gt;&lt;/script&gt;<br />
&lt;link href=&#8221;arquivo.css&#8221; rel=&#8221;stylesheet&#8221;&gt;<br />
[/html]</p>
]]></content:encoded>
			<wfw:commentRss>http://guilhermemuller.com.br/blog/2012/01/12/uma-pagina-html5-basica/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Karas Móveis</title>
		<link>http://guilhermemuller.com.br/blog/2011/12/16/karas-moveis/</link>
		<comments>http://guilhermemuller.com.br/blog/2011/12/16/karas-moveis/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 17:15:49 +0000</pubDate>
		<dc:creator>Guilherme Müller</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://guilhermemuller.com.br/blog/?p=712</guid>
		<description><![CDATA[Criação: Elisangela Martins / Guilherme Müller &#124; Front-end e sistema: Guilherme Müller]]></description>
			<content:encoded><![CDATA[<p>Criação: Elisangela Martins / Guilherme Müller | Front-end e sistema: Guilherme Müller</p>
]]></content:encoded>
			<wfw:commentRss>http://guilhermemuller.com.br/blog/2011/12/16/karas-moveis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CEABS</title>
		<link>http://guilhermemuller.com.br/blog/2011/12/16/ceabs/</link>
		<comments>http://guilhermemuller.com.br/blog/2011/12/16/ceabs/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 17:14:34 +0000</pubDate>
		<dc:creator>Guilherme Müller</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://guilhermemuller.com.br/blog/?p=710</guid>
		<description><![CDATA[Criação: Nexo Design &#124; Front-end: Guilherme Müller &#160;]]></description>
			<content:encoded><![CDATA[<p>Criação: Nexo Design | Front-end: Guilherme Müller</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://guilhermemuller.com.br/blog/2011/12/16/ceabs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Anolis Books</title>
		<link>http://guilhermemuller.com.br/blog/2011/12/16/anolis-books/</link>
		<comments>http://guilhermemuller.com.br/blog/2011/12/16/anolis-books/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 17:10:29 +0000</pubDate>
		<dc:creator>Guilherme Müller</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://guilhermemuller.com.br/blog/?p=708</guid>
		<description><![CDATA[Criação: Nexo Design &#124; Front-end e sistema: Guilherme Müller]]></description>
			<content:encoded><![CDATA[<p>Criação: Nexo Design | Front-end e sistema: Guilherme Müller</p>
]]></content:encoded>
			<wfw:commentRss>http://guilhermemuller.com.br/blog/2011/12/16/anolis-books/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Safesoft</title>
		<link>http://guilhermemuller.com.br/blog/2011/12/16/safesoft/</link>
		<comments>http://guilhermemuller.com.br/blog/2011/12/16/safesoft/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 17:05:54 +0000</pubDate>
		<dc:creator>Guilherme Müller</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://guilhermemuller.com.br/blog/?p=705</guid>
		<description><![CDATA[Criação: Área41 Design / Guilherme Müller &#124; Front-end e sistema: Guilherme Müller]]></description>
			<content:encoded><![CDATA[<p>Criação: Área41 Design / Guilherme Müller | Front-end e sistema: Guilherme Müller</p>
]]></content:encoded>
			<wfw:commentRss>http://guilhermemuller.com.br/blog/2011/12/16/safesoft/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Satis Fudge</title>
		<link>http://guilhermemuller.com.br/blog/2011/12/16/satis-fudge/</link>
		<comments>http://guilhermemuller.com.br/blog/2011/12/16/satis-fudge/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 17:04:35 +0000</pubDate>
		<dc:creator>Guilherme Müller</dc:creator>
				<category><![CDATA[Portfolio]]></category>

		<guid isPermaLink="false">http://guilhermemuller.com.br/blog/?p=703</guid>
		<description><![CDATA[Criação, front-end e programação: Guilherme Müller]]></description>
			<content:encoded><![CDATA[<p>Criação, front-end e programação: Guilherme Müller</p>
]]></content:encoded>
			<wfw:commentRss>http://guilhermemuller.com.br/blog/2011/12/16/satis-fudge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

