<?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>Blog Web Standards &#187; CSS</title>
	<atom:link href="http://www.webstandards.blog.br/category/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.webstandards.blog.br</link>
	<description>Soluções para os problemas enfrentados pelos desenvolvedores HTML e CSS em seu dia-a-dia</description>
	<lastBuildDate>Tue, 20 Dec 2011 19:14:07 +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>Repositório de Snippets: HTML, CSS, Microformats, jQuery e WordPress</title>
		<link>http://www.webstandards.blog.br/blog-web-standards/repositorio-de-snippets-html-css-microformats-jquery-e-wordpress/</link>
		<comments>http://www.webstandards.blog.br/blog-web-standards/repositorio-de-snippets-html-css-microformats-jquery-e-wordpress/#comments</comments>
		<pubDate>Wed, 19 Jan 2011 17:34:51 +0000</pubDate>
		<dc:creator>Carlitos</dc:creator>
				<category><![CDATA[Blog Web Standards]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Ferramenta]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[Web Standards]]></category>
		<category><![CDATA[snippets]]></category>

		<guid isPermaLink="false">http://www.webstandards.blog.br/?p=271</guid>
		<description><![CDATA[Pensando em deixar o desenvolvimento de códigos mais prático, publicamos nosso Repositório de Snippets, lugar onde colocaremos trechos de código modulares que usamos comumente em nossos projetos. Obviamente deixamos aberto a todos e, por isso, deixamos espaço aberto a sugestões, tanto para melhoria dos códigos, como outros snippets a serem implementados. Além disso, disponibilizamos o [...]

<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/html/email-marketing-html-css/' rel='bookmark' title='Email marketing: usando HTML e CSS'>Email marketing: usando HTML e CSS</a> <small>Limitações HTML e CSS para desenvolver templates de Email Marketing...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Pensando em deixar o desenvolvimento de códigos mais prático, publicamos nosso <strong><a title="Visitar o Repositório de Snippets" href="http://www.webstandards.blog.br/snippets/">Repositório de Snippets</a></strong>, lugar onde colocaremos trechos de código modulares que usamos comumente em nossos projetos.</p>
<p>Obviamente deixamos aberto a todos e, por isso, deixamos espaço aberto a sugestões, tanto para melhoria dos códigos, como outros snippets a serem implementados.</p>
<p>Além disso, disponibilizamos o download dos snippets em formato de Clips para o <a title="Visitar artigo com mais informações sobre o editor Coda" href="http://project47.viscountbox.com/coda-editor-de-codigos-para-mac-os/">editor Coda (Mac OS)</a>, assim os códigos podem ser utilizados de maneira mais prática!</p>


<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/html/email-marketing-html-css/' rel='bookmark' title='Email marketing: usando HTML e CSS'>Email marketing: usando HTML e CSS</a> <small>Limitações HTML e CSS para desenvolver templates de Email Marketing...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.webstandards.blog.br/blog-web-standards/repositorio-de-snippets-html-css-microformats-jquery-e-wordpress/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Unidade de medida &#8211; em</title>
		<link>http://www.webstandards.blog.br/css/unidade-de-medida-em/</link>
		<comments>http://www.webstandards.blog.br/css/unidade-de-medida-em/#comments</comments>
		<pubDate>Fri, 03 Dec 2010 18:18:10 +0000</pubDate>
		<dc:creator>g3</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[propriedades]]></category>

		<guid isPermaLink="false">http://www.webstandards.blog.br/?p=244</guid>
		<description><![CDATA[Por questões de compatibilidade entre os navegadores, nós adotamos como padrão a unidade de medida &#8220;em&#8221;, principalmente para definição do tamanho das fontes. &#8220;em&#8221; é uma medida relativa, isso quer dizer que ela pega como base um valor de referência anteriormente definido. Exemplo Coloque em um arquivo html, as seguintes marcações: Dentro do body: &#60;div [...]

<h5>Nenhum artigo relacionado.</h5>]]></description>
			<content:encoded><![CDATA[<p>Por questões de compatibilidade entre os navegadores, nós adotamos como <strong>padrão</strong> a unidade de medida &#8220;em&#8221;, principalmente para definição do tamanho das fontes.</p>
<p>&#8220;em&#8221; é uma medida relativa, isso quer dizer que ela pega como base um valor de referência anteriormente definido.</p>
<h4>Exemplo</h4>
<p>Coloque em um arquivo <abbr title="HyperText Markup Language">html</abbr>, as seguintes marcações:</p>
<p><strong>Dentro do body:</strong></p>
<pre class="brush: html">
&lt;div id=&quot;conteudo&quot;&gt;
  &lt;h1&gt;Olá, aqui é o título&lt;/h1&gt;
  &lt;p&gt;E aqui é um &lt;strong&gt;paragráfo&lt;/strong&gt;.&lt;/p&gt;
&lt;/div&gt;
</pre>
<p>Defina o <abbr title="Cascading Style Sheets">css</abbr> abaixo para o <abbr title="HyperText Markup Language">html</abbr> de cima:</p>
<pre class="brush: css">
html { font-size: 100%; }
body { font-size: .68em; }

#conteudo h1 { font-size: 1.45em; }
#conteudo p { font-size: 1.1em; }
#conteudo p strong { font-size: 1.16em; }
</pre>
<h4>Explicação</h4>
<ol>
<li><strong>html &#8220;100%&#8221;</strong>. Isso atribuí ao html o tamanho da fonte padrão dos navegadores, que é 16px.</li>
<li><strong>body &#8220;.68em&#8221;</strong>. Como o tamanho da fonte padrão dos navegadores é 16px, pegamos 11px que é o valor que queremos e dividimos por 16px. Com isso chegamos no valor &#8220;0.68&#8243;.</li>
</ol>
<p><strong>Cálculo feito</strong>: 11/16 = 0.68</p>
<p><strong>A idéia é que 11px é igual a 0.68em de 16px.</strong></p>
<p>Em outros casos será da mesma forma, pegamos o valor que queremos e dividimos pelo valor de referência que foi definido anteriormente.</p>
<p>Na tabela abaixo estão os dados sobre as medidas dos elementos h1, p e strong.</p>
<p>Para compreender melhor esses valores definidos, veja a tabela:</p>
<table class="centro" border="1" style="margin-bottom: 20px;">
<thead>
<tr>
<th abbr="tag">Elemento</th>
<th abbr="cálculo px">Cálculo para restaurar o valor em pixel.</th>
<th abbr="valor px">Valor na unidade &#8220;px&#8221;</th>
<th abbr="cálculo em">Cálculo para mudar pixel para &#8220;em&#8221;.</th>
<th abbr="valor em">Valor na unidade &#8220;em&#8221;</th>
</tr>
</thead>
<tbody>
<tr>
<th>h1</th>
<td>1.45(em) * 11(px)</td>
<td>16px</td>
<td>16(px) / 11(px)</td>
<td>1.45em</td>
</tr>
<tr>
<th>p</th>
<td>1.1(em) * 11(px)</td>
<td>12px</td>
<td>12(px) / 11(px)</td>
<td>1.1em</td>
</tr>
<tr>
<th>strong</th>
<td>1.16(em) * 12(px)</td>
<td>14px</td>
<td>14(px) / 12(px)</td>
<td>1.16em</td>
</tr>
</tbody>
</table>
<p>O valor do strong é dividido por 12 porque ele pega o valor do elemento de referência dele, que é o parágrafo e que tem 12px de tamanho da fonte.</p>
<p>Então temos uma <strong>fórmula para conversão de &#8220;px&#8221; para &#8220;em&#8221;</strong> que é:</p>
<p><strong>(valor a ser convertido) / (valor de referência) = (valor que desejamos)</strong></p>
<p>Usando essa medida conseguimos a compatibilidade desejada entre os navegadores.</p>
<p>Veja mais conteúdo sobre unidades de medida usadas no <abbr title="Cascading Style Sheets">css</abbr>:</p>
<ul>
<li><a href="http://www.maujor.com/tutorial/medidascss.php">Unidades de medida de comprimento CSS &#8211; Maujor</a></li>
<li><a href="http://www.w3.org/TR/CSS21/fonts.html#font-size-props" hreflang="en">Font size: the &#8216;font-size&#8217; property</a></li>
</ul>


<h5>Nenhum artigo relacionado.</h5>]]></content:encoded>
			<wfw:commentRss>http://www.webstandards.blog.br/css/unidade-de-medida-em/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Listagem horizontal com itens de mesma altura</title>
		<link>http://www.webstandards.blog.br/html/listagem-horizontal-com-itens-de-mesma-altura/</link>
		<comments>http://www.webstandards.blog.br/html/listagem-horizontal-com-itens-de-mesma-altura/#comments</comments>
		<pubDate>Fri, 13 Aug 2010 18:21:25 +0000</pubDate>
		<dc:creator>linke</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[horizontal]]></category>
		<category><![CDATA[listagem itens]]></category>

		<guid isPermaLink="false">http://www.webstandards.blog.br/?p=227</guid>
		<description><![CDATA[Como fazer uma listagem horizontal com itens de mesma altura utilizando somente HTML e CSS.

<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/css/alinhamento-vertical-e-horizontal-com-css/' rel='bookmark' title='Alinhamento vertical e horizontal com CSS'>Alinhamento vertical e horizontal com CSS</a> <small>A forma seguinte de alinhamento vertical e horizontal é uma...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Listagem horizontal onde os itens de lista vão ficar sempre com tamanho igual (se baseando na altura do maior dos itens): utilizando somente HTML e CSS.</p>
<p>Seria uma listagem no modelo da <a href="http://www.americanas.com.br" title="Americanas.com">Americanas.com</a> e <a href="http://www.submarino.com.br" title="Submarino">Submarino</a> &#8211; Porém quando verifiquei o código desses sites vi que não era o ideal, pois utilizam um monte de ULs separadas para cada linha: sendo que deveria ser somente 1.</p>
<h4>Pontos positivos &#8211; Lista com Display Inline-block</h4>
<ul>
<li>Todos itens da linha se <strong>adaptam ao tamanho do maior</strong>;</li>
<li>Sem float: sem preoupações com clear, contemfloat, etc;</li>
<li>Possível listar tudo utilizando somente uma UL;</li>
</ul>
<h4>Pontos negativos &#8211; Suporte</h4>
<ul>
<li><a href="http://www.webstandards.blog.br/css/hack-para-internet-explorer-6/" title="Hack para IE6">Hack para IE6</a>;</li>
<li>Hack/script para IE7;</li>
</ul>
<p>Veja o exemplo de como vai ficar: <a href="http://www.webstandards.blog.br/post-listagem-horizontal/listagem-horizontal-com-itens-de-mesma-altura.html" title="Listagem horizontal com itens de mesma altura">Listagem horizontal com itens de mesma altura</a>.</p>
<h4>Código HTML</h4>
<p>Somente uma listagem UL com items LI contendo uma imagem e um parágrafo.</p>
<pre class="brush: html">
  &lt;!-- abre listagem --&gt;
    &lt;ul&gt;
      &lt;li&gt;
        &lt;img src=&quot;imagens/listagem-item1.jpg&quot; alt=&quot;Quadro em aquarela 1&quot; /&gt;
        &lt;p&gt;Quadro em Aquarela 60x60px. Pode ser comprado em até &lt;strong&gt;6x no cartão&lt;/strong&gt; ou à vista com desconto de &lt;strong&gt;50%&lt;/strong&gt; - por Kasper Jeppesen, 2010&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;img src=&quot;imagens/listagem-item2.jpg&quot; alt=&quot;Quadro em aquarela 2&quot; /&gt;
        &lt;p&gt;Esse item é uma obra de arte fantástica em Aquarela 60x60px - por Kasper Jeppesen, 2010&lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;
        &lt;img src=&quot;imagens/listagem-item3.jpg&quot; alt=&quot;Quadro em aquarela 3&quot; /&gt;
        &lt;p&gt;Obra em Aquarela&lt;/p&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
    &lt;!-- fecha listagem --&gt;
</pre>
<p>E o CSS:</p>
<pre class="brush: css">
  #limites ul { list-style: none; letter-spacing: -3px;}
  #limites ul li { display: inline-block; width: 100px; margin: 10px 0; padding: 20px; border-top: 1px #fff solid; text-align: center; vertical-align: top; letter-spacing: normal; zoom: 1; }
  #limites ul li p { text-align: left; }
</pre>
<ul>
<li>Letter-spacing com valor negativo na UL, pois o display insere automaticamente alguns pixels de margem entre os elementos. Esse valor é zerado novamente no LI (normal).</li>
<li>Todos itens se alinham ao topo</li>
<li>Paddings com a borda simulam a união dos elementos</li>
</ul>
<p>Se for testar nos IEs até agora, vai encontrar um BUG como esse:</p>
<div class="wp-caption aligncenter" style="width: 536px"><a href="http://www.webstandards.blog.br/post-listagem-horizontal/imagens/print-listagem-quebra-ies.jpg"><img alt="Quebra de layout nos IEs" src="http://www.webstandards.blog.br/post-listagem-horizontal/imagens/print-listagem-quebra-ies.jpg" title="Quebra de layout nos IEs" width="526" height="484" /></a><p class="wp-caption-text">Quebra de layout nos IEs</p></div>
<p>O quadro vermelho indica a quebra, pois esses navegadores não suportam o DISPLAY inline-block corretamente.</p>
<p>Não se preocupe &#8211; para concertar isso é só usar um <strong>hack para o IE6</strong>:</p>
<pre class="brush: css">
  * html #limites ul li { display: inline; }
</pre>
<p>E um ajuste para o <strong>IE7</strong> &#8211; em um CSS separado (se não lembra como fazer, é bom dar uma lida em <a href="http://www.webstandards.blog.br/hacks/conditional-comments-para-internet-explorer/">Conditional comments para Internet Explorer</a>:</p>
<pre class="brush: css">
  #limites ul li { display: inline; }
</pre>
<p><strong>Pronto.</strong><br />
Temos uma lista semanticamente correta onde cada linha se adapta ao conteúdo do maior elemento.</p>


<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/css/alinhamento-vertical-e-horizontal-com-css/' rel='bookmark' title='Alinhamento vertical e horizontal com CSS'>Alinhamento vertical e horizontal com CSS</a> <small>A forma seguinte de alinhamento vertical e horizontal é uma...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.webstandards.blog.br/html/listagem-horizontal-com-itens-de-mesma-altura/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Cantos arredondados no Internet Explorer (sem imagens)</title>
		<link>http://www.webstandards.blog.br/css/cantos-arredondados-no-internet-explorer-sem-imagens/</link>
		<comments>http://www.webstandards.blog.br/css/cantos-arredondados-no-internet-explorer-sem-imagens/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 00:19:05 +0000</pubDate>
		<dc:creator>Carlitos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[bordas arredondadas]]></category>
		<category><![CDATA[ie6]]></category>
		<category><![CDATA[ie7]]></category>
		<category><![CDATA[ie8]]></category>
		<category><![CDATA[internet explorer 6]]></category>
		<category><![CDATA[internet explorer 7]]></category>
		<category><![CDATA[internet explorer 8]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://www.webstandards.blog.br/?p=201</guid>
		<description><![CDATA[Em desuso. Esse código está ultrapassado em nosso padrão, então evitamos usá-lo. Com os recursos que temos atualmente, podemos fazer cantos arredondados diretamente pelo CSS para os browsers Firefox e Safari, graças a propriedades exclusivas de suas engines. O CSS3 promete unificar tudo isso introduzindo a propriedade border-radius mas, até o momento, a melhor opção [...]

<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/hacks/conditional-comments-para-internet-explorer/' rel='bookmark' title='Conditional comments para Internet Explorer'>Conditional comments para Internet Explorer</a> <small>Uma boa maneira de fugirmos dos hacks é usar os...</small></li>
<li><a href='http://www.webstandards.blog.br/css/hover-focus-e-active-em-qualquer-elemento-no-internet-explorer-6/' rel='bookmark' title='Hover, focus e active em qualquer elemento no Internet Explorer 6'>Hover, focus e active em qualquer elemento no Internet Explorer 6</a> <small>Uma das diversas limitações apresentadas pelo IE6 está relacionada ao...</small></li>
<li><a href='http://www.webstandards.blog.br/css/hack-para-internet-explorer-6/' rel='bookmark' title='Hack para Internet Explorer 6'>Hack para Internet Explorer 6</a> <small>Em desuso. Esse código está ultrapassado em nosso padrão, então...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p class="desuso"><strong>Em desuso</strong>. Esse código está ultrapassado em nosso padrão, então evitamos usá-lo.</p>
<p>Com os recursos que temos atualmente, podemos fazer cantos arredondados diretamente pelo CSS para os <em>browsers</em> Firefox e Safari, graças a propriedades exclusivas de suas <em>engines</em>.</p>
<p>O CSS3 promete unificar tudo isso introduzindo a propriedade <a title="Visitar definição de border-radius na W3C" href="http://www.w3.org/TR/2005/WD-css3-background-20050216/#the-border-radius"><strong>border-radius</strong></a> mas, até o momento, a melhor opção que temos é o <a title="Visitar o site do script DD_roundies" href="http://www.dillerdesign.com/experiment/DD_roundies/">DD_roundies</a>, um <em>script</em> que possibilita fazermos <strong>bordas arredondadas sem imagens</strong> para os browsers mais populares: Internet Explorer 6, 7 e 8 além de Firefox e Safari (Google Chrome).<br />
<span id="more-201"></span></p>
<h4>Explicação</h4>
<p>Faça <a title="Baixar a versão 0.0.2 do DD_roundies" href="http://www.dillerdesign.com/experiment/DD_roundies/DD_roundies_0.0.2a-min.js">download do <em>script</em> DD_roundies</a> e coloque o arquivo junto com o HTML. Caso o arquivo baixado esteja na mesma pasta que o arquivo HTML inclua esse js em seu HTML dentro da tag head:</p>
<pre class="brush: html">
...
&lt;head&gt;
  &lt;title&gt;Exemplo&lt;/title&gt;
  &lt;script type=&quot;text/javascript&quot; src=&quot;DD_roundies_0.0.2a-min.js&quot;&gt;&lt;/script&gt;
&lt;/head&gt;
...
</pre>
<p>Agora para colocarmos canto arredondado em algum elemento <strong>siga o exemplo</strong>.</p>
<p>Coloque dentro da tag body uma div:</p>
<pre class="brush: html">
...
&lt;body&gt;
  &lt;div&gt;Meu exemplo de canto arredondado&lt;/div&gt;
&lt;/body&gt;
...
</pre>
<p>Logo abaixo do código que colocou antes no head, inclua também o código para fazer os cantos arredondados que desejar e um CSS para que veja o que fez:</p>
<pre class="brush: html">
...
&lt;head&gt;
  &lt;title&gt;Exemplo&lt;/title&gt;
  &lt;script type=&quot;text/javascript&quot; src=&quot;DD_roundies_0.0.2a-min.js&quot;&gt;&lt;/script&gt;
  &lt;script type=&quot;text/javascript&quot;&gt;
    DD_roundies.addRule(&#039;div&#039;, &#039;10px&#039;, true);
  &lt;/script&gt;

  &lt;style type=&quot;text/css&quot;&gt;
    div { border: 1px solid red; }
  &lt;/style&gt;
&lt;/head&gt;
...
</pre>
<p>Esse código que colocou é apenas para fazer os cantos arredondados em qualquer div com um raio de 10 pixel e funcionar em todos navegados (true). Quando for usar em seu dia-a-dia mude conforme a necessidade, por exemplo:</p>
<pre class="brush: javascript">
...
DD_roundies.addRule(&#039;div.conteudo ol li&#039;, &#039;20px&#039;, true);
...
</pre>
<p>ou assim, com <strong>cantos diferentes</strong>:</p>
<pre class="brush: javascript">
...
DD_roundies.addRule(&#039;div.topo .busca form&#039;, &#039;20px 0 0 20px&#039;, true);
...
</pre>
<p>Essa ordem usada para deixar os cantos diferentes é a seguinte: <strong>Top-Left</strong>, <strong>Top-Right</strong>, <strong>Bottom-Left</strong> e <strong>Bottom-Right</strong>.</p>
<p>Veja o <a href="http://www.webstandards.blog.br/exemplos/bordas-arredondadas/" title="Exemplo de borda arredondada sem imagens">exemplo de pronto com cantos arredondados</a>. Caso tenha uma dúvida, comente!</p>
<p>O interessante de usar essa técnica para todos os <em>browsers</em> (incluindo Firefox e Safari) é que mantemos nosso CSS limpo e sua aplicação mostrou-se muito eficaz, já que não se faz mais necessário o uso de imagens para fazer os cantos arredondados.</p>
<p>O único porém que percebi até o momento é no uso das bordas arredondadas para Internet Explorer 8, não mostrando a propriedade <em>background-image</em> caso utilizada.</p>


<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/hacks/conditional-comments-para-internet-explorer/' rel='bookmark' title='Conditional comments para Internet Explorer'>Conditional comments para Internet Explorer</a> <small>Uma boa maneira de fugirmos dos hacks é usar os...</small></li>
<li><a href='http://www.webstandards.blog.br/css/hover-focus-e-active-em-qualquer-elemento-no-internet-explorer-6/' rel='bookmark' title='Hover, focus e active em qualquer elemento no Internet Explorer 6'>Hover, focus e active em qualquer elemento no Internet Explorer 6</a> <small>Uma das diversas limitações apresentadas pelo IE6 está relacionada ao...</small></li>
<li><a href='http://www.webstandards.blog.br/css/hack-para-internet-explorer-6/' rel='bookmark' title='Hack para Internet Explorer 6'>Hack para Internet Explorer 6</a> <small>Em desuso. Esse código está ultrapassado em nosso padrão, então...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.webstandards.blog.br/css/cantos-arredondados-no-internet-explorer-sem-imagens/feed/</wfw:commentRss>
		<slash:comments>34</slash:comments>
		</item>
		<item>
		<title>Email marketing: usando HTML e CSS</title>
		<link>http://www.webstandards.blog.br/html/email-marketing-html-css/</link>
		<comments>http://www.webstandards.blog.br/html/email-marketing-html-css/#comments</comments>
		<pubDate>Thu, 18 Jun 2009 14:45:18 +0000</pubDate>
		<dc:creator>linke</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Email marketing]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[email css]]></category>
		<category><![CDATA[email marketing web standards]]></category>

		<guid isPermaLink="false">http://www.webstandards.blog.br/?p=156</guid>
		<description><![CDATA[Limitações HTML e CSS para desenvolver templates de Email Marketing e uma visão geral sobre Web Standards nessa área.

<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/historico-de-bugs/quebra-de-layout-no-email-marketing-ie6-e-ie7/' rel='bookmark' title='Quebra de layout no email marketing IE6 e IE7'>Quebra de layout no email marketing IE6 e IE7</a> <small>Como corrigir problemas de quebra de linha de layout em...</small></li>
<li><a href='http://www.webstandards.blog.br/web-standards/usando-target-blank-em-xhtml-strict/' rel='bookmark' title='Usando target blank em XHTML Strict'>Usando target blank em XHTML Strict</a> <small>Para usar o atributo target="_blank" para que links abram em...</small></li>
<li><a href='http://www.webstandards.blog.br/blog-web-standards/repositorio-de-snippets-html-css-microformats-jquery-e-wordpress/' rel='bookmark' title='Repositório de Snippets: HTML, CSS, Microformats, jQuery e WordPress'>Repositório de Snippets: HTML, CSS, Microformats, jQuery e WordPress</a> <small>Pensando em deixar o desenvolvimento de códigos mais prático, publicamos...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Sei que email marketing não tem muita ligação com Web Standards, mas todo mundo precisa saber que já existem projetos relacionados e também serve como um guia para produzir esse tipo de material.</p>
<p>Quais são os limites do email marketing utilizando HTML? O que podemos colocar de CSS também, levando em conta algo que funcione nos programas desktops e também nos webservices?</p>
<h3>CSS</h3>
<p>Pode ser utilizada a tag &#8220;style&#8221; no head ou no body (só não funciona no AOL MAC, Note 6, Gmail e Hotmail). Mas como no GMail isso não funciona, a dica é <strong>usar <em>style inline</em>.</strong> Como o Notes 6 tem um suporte mínimo, não levei ele em conta ok? <img src='http://www.webstandards.blog.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Propriedades CSS válidas para todos*:</p>
<ul>
<li>Background-color:</li>
<li>Border;</li>
<li>Border-collapse;</li>
<li>Color;</li>
<li>Display, Float e Height(só não funciona no Outlook 07);</li>
<li>Font-family (não funciona no Gmail);</li>
<li>Font-size;</li>
<li>Font-style;</li>
<li>Font-weight;</li>
<li>Line height;</li>
<li>Table-layout;</li>
<li>Text-align;</li>
<li>Text-decoration;</li>
<li>Text-indent;</li>
<li>Text-transform;</li>
<li>Letter-spacing;</li>
<li>Padding;</li>
</ul>
<p>* Todos testados (Yahoo antigo/novo, Gmail antigo/novo, Live Mail, Hotmail, AOL Web,	MobileMe.) / (Outlook (2003 e 07), Windows Mail, Mac Mail, Entourage (2004, 2008), Thunder-bird 2, AOL (9, 10), Mac).</p>
<p>Existem pessoas focadas nos webstandards para os emails: os chamados <a title="e-mail standards" rel="external" href="http://www.email-standards.org/clients"><strong>e-mail standards</strong></a>. Eles mostram <em>screenshots</em> de cada browser como resultados de seus testes, além de dizer o que falta para cada Email Client ficar show para suportar os standars. Ex.: Para o <a title="Google Mail" rel="external" href="http://www.email-standards.org/clients/gmail/screenshot/">Google Mail</a> ainda é necessário suportar o CSS no header, e não utilizar mais a técnica inline.</p>
<h3>Estrutura HTML / CSS</h3>
<p>Resumindo: Como construir um e-mail marketing utilizando pelo menos um pouco de <strong>webstandards</strong>?</p>
<ul>
<li>A estrutura deve ser em tabelas;</li>
<li>Utilizar as propriedades que todos os emails clients aceitem (ou pelo menos a maioria deles);</li>
<li>CSS inline (apesar de não ser standard, é o que podemos usar);</li>
<li>Layout com largura fixa até 580px e a altura pode ser variável (dependendo do layout).</li>
<li>Mesmo com todos os cuidados, é possível que o usuário veja a mensagem desconfigurada. Por isso um link do tipo &#8220;se você está vendo o email desconfigurado, acesse a outra versão.&#8221;</li>
</ul>
<h3>HTML: tags que devemos evitar</h3>
<p>Tags HTML que não devem ser utilizadas, por não serem suportadas por muitos clientes de email: (segundo um <a title="HTML Email Guide" rel="nofollow" href="http://www.anandgraves.com/html-email-guide">HTML Email Guide</a> que li).</p>
<ul>
<li>DOCTYPE</li>
<li>HTML tag</li>
<li>BODY tag</li>
<li>Meta tags</li>
<li>Head tag</li>
<li>Base tag</li>
<li>Link tag</li>
<li>Script tag</li>
<li>Title tag</li>
<li>Applet tag</li>
<li>Frameset tag</li>
<li>Frame tag</li>
<li>IFrame tag</li>
<li>Comments</li>
</ul>
<p><a title="Template de E-mail Marketing HTML" href="http://www.webstandards.blog.br/exemplos/email-marketing/emailmkt_ws.html">Template de E-mail Marketing HTML</a>, utilizando o que falei nesse post. *No topo a mensagem para visualizar o outro formato do email, evitei usar o &#8220;clique aqui&#8221; por ser termos que são buscados para codificar como <em>Spam</em>.</p>
<p><a title="Template Email Marketing" href="http://www.webstandards.blog.br/exemplos/email-marketing/emailmkt_ws.html"><img class="size-medium wp-image-159" title="Template Email Marketing" src="http://www.webstandards.blog.br/wp-content/uploads/2009/06/email_marketing_exemplo-300x208.gif" alt="Template email marketing" width="300" height="208" /></a>. <em>Esse template foi testado no GMail, Hotmail, YahooMail e no ThunderBird.</em></p>
<p><em>Se você tem dúvidas em quais clientes testar, pode dar preferência aos clientes que mais cresceram em 2009: iPhone, Apple Mail, Hotmail e Gmail &#8211; (<a title="Campaign Monitor - Email Client trends for 2009" href="http://www.campaignmonitor.com/blog/post/3092/email-client-trends-for-2009/">fonte</a>).</em></p>
<p><em><br />
</em></p>
<p>Link relacionado/fonte: <a title="Campaign Monitor" rel="nofollow" href="http://www.campaignmonitor.com/css">Campaing Monitor</a>.</p>


<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/historico-de-bugs/quebra-de-layout-no-email-marketing-ie6-e-ie7/' rel='bookmark' title='Quebra de layout no email marketing IE6 e IE7'>Quebra de layout no email marketing IE6 e IE7</a> <small>Como corrigir problemas de quebra de linha de layout em...</small></li>
<li><a href='http://www.webstandards.blog.br/web-standards/usando-target-blank-em-xhtml-strict/' rel='bookmark' title='Usando target blank em XHTML Strict'>Usando target blank em XHTML Strict</a> <small>Para usar o atributo target="_blank" para que links abram em...</small></li>
<li><a href='http://www.webstandards.blog.br/blog-web-standards/repositorio-de-snippets-html-css-microformats-jquery-e-wordpress/' rel='bookmark' title='Repositório de Snippets: HTML, CSS, Microformats, jQuery e WordPress'>Repositório de Snippets: HTML, CSS, Microformats, jQuery e WordPress</a> <small>Pensando em deixar o desenvolvimento de códigos mais prático, publicamos...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.webstandards.blog.br/html/email-marketing-html-css/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Alinhamento vertical e horizontal com CSS</title>
		<link>http://www.webstandards.blog.br/css/alinhamento-vertical-e-horizontal-com-css/</link>
		<comments>http://www.webstandards.blog.br/css/alinhamento-vertical-e-horizontal-com-css/#comments</comments>
		<pubDate>Wed, 22 Apr 2009 22:07:00 +0000</pubDate>
		<dc:creator>g3</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[propriedades]]></category>

		<guid isPermaLink="false">http://www.webstandards.blog.br/?p=142</guid>
		<description><![CDATA[A forma seguinte de alinhamento vertical e horizontal é uma combinação de: Posicionamento absoluto Margens negativas Para começar entender como funciona esse método copie o código XHTML abaixo e insira dentro da tag body: &#60;div id=&#34;limites&#34;&#62; &#60;div id=&#34;conteudo&#34;&#62; &#60;h1&#62;Alinhamento vertical e horizontal com &#60;abbr title=&#34;eXtensible Hypertext Markup Language&#34;&#62;XHTML&#60;/abbr&#62; e &#60;abbr title=&#34;Cascading Style Sheets&#34;&#62;CSS&#60;/abbr&#62;&#60;/h1&#62; &#60;p&#62;Olá mundo!&#60;/p&#62; [...]

<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/html/listagem-horizontal-com-itens-de-mesma-altura/' rel='bookmark' title='Listagem horizontal com itens de mesma altura'>Listagem horizontal com itens de mesma altura</a> <small>Como fazer uma listagem horizontal com itens de mesma altura...</small></li>
<li><a href='http://www.webstandards.blog.br/html/botao-expansivel-css-links-com-background/' rel='bookmark' title='Botão expansível CSS &#8211; links com background'>Botão expansível CSS &#8211; links com background</a> <small>Como fazer botões expansíveis com background em HTML e CSS....</small></li>
<li><a href='http://www.webstandards.blog.br/css/unidade-de-medida-em/' rel='bookmark' title='Unidade de medida &#8211; em'>Unidade de medida &#8211; em</a> <small>Por questões de compatibilidade entre os navegadores, nós adotamos como...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>A forma seguinte de <strong>alinhamento vertical e horizontal</strong> é uma combinação de:</p>
<ul>
<li>Posicionamento absoluto</li>
<li>Margens negativas</li>
</ul>
<p>Para começar entender como funciona esse método copie o código <abbr title="eXtensible Hypertext Markup Language">XHTML</abbr> abaixo e insira dentro da tag body:</p>
<pre class="brush: xhtml">
  &lt;div id=&quot;limites&quot;&gt;
    &lt;div id=&quot;conteudo&quot;&gt;
      &lt;h1&gt;Alinhamento vertical e horizontal com &lt;abbr title=&quot;eXtensible Hypertext Markup Language&quot;&gt;XHTML&lt;/abbr&gt; e &lt;abbr title=&quot;Cascading Style Sheets&quot;&gt;CSS&lt;/abbr&gt;&lt;/h1&gt;
      &lt;p&gt;Olá mundo!&lt;/p&gt;
    &lt;/div&gt;
  &lt;/div&gt;
</pre>
<p>Nesse exemplo o elemento que precisa posicionar no meio da tela será a div#limites.</p>
<p>Como <a href="http://www.webstandards.blog.br/css/documento-base-para-css/" title="Documento base para CSS">padrão de documento base para <abbr title="Cascading Style Sheets">CSS</abbr></a> coloque o seguinte reset:</p>
<pre class="brush: css">
  * { margin: 0; padding: 0; z-index: 1; }
</pre>
<p>E agora para começar a posicionar a div#limites no meio da tela declare o seguinte código:</p>
<pre class="brush: css">
  #limites { position: absolute; top: 50%; left: 50%; width: 680px; height: 400px; background-color: #eee; }
</pre>
<p>Isso vai fazer que a div#limites tenha os seguintes estilos:</p>
<ul>
<li>posição absoluta</li>
<li>canto superior esquerdo a uma distância igual a 50% do tamanho da tela</li>
<li>largura e altura</li>
<li>fundo cinza.</li>
</ul>
<p>Com isso o resultado será meio estranho visualmente, mas esta tudo ok.</p>
<div id="attachment_143" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.webstandards.blog.br/wp-content/uploads/2009/04/top_50_left_50.gif"><img src="http://www.webstandards.blog.br/wp-content/uploads/2009/04/top_50_left_50-300x232.gif" alt="Veja ampliado" title="top 50 left 50" width="300" height="232" class="size-medium wp-image-143" /></a><p class="wp-caption-text">Veja ampliado</p></div>
<p>Agora é preciso puxar a div#limites para cima e para esquerda usando margim negativa, é por esse motivo que é necessário a div#limites ter uma largura e altura definida.</p>
<p>Puxe então a div#limites para cima &uarr; com um valor igual à metade da sua <strong>altura</strong> ( margin-top: -200px; ) e o mesmo deve ser feito para o lado esquerdo &larr;, puxe para esquerda à metade da sua <strong>largura</strong> ( margin-left: -340px; ).</p>
<div id="attachment_144" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.webstandards.blog.br/wp-content/uploads/2009/04/top_50_left_50_informa_margin.gif"><img src="http://www.webstandards.blog.br/wp-content/uploads/2009/04/top_50_left_50_informa_margin-300x232.gif" alt="Veja ampliada" title="top 50 left 50 informa margin" width="300" height="232" class="size-medium wp-image-144" /></a><p class="wp-caption-text">Veja ampliada</p></div>
<p>Com isso é possível posicionar a div#limites exatamente no meio da tela.</p>
<div id="attachment_145" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.webstandards.blog.br/wp-content/uploads/2009/04/top_50_left_50_margin.gif"><img src="http://www.webstandards.blog.br/wp-content/uploads/2009/04/top_50_left_50_margin-300x232.gif" alt="Veja ampliada" title="top 50 left 50 margin" width="300" height="232" class="size-medium wp-image-145" /></a><p class="wp-caption-text">Veja ampliada</p></div>
<p>Veja o arquivo pronto do <a href="http://www.webstandards.blog.br/exemplos/alinhamento-horizontal-vertical-css.html" title="Exemplo de alinhamento vertical e horizontal com XHTML e CSS">exemplo sobre alinhamento vertical e horizontal</a> deste post.</p>
<h3>Outros exemplos e links interessantes</h3>
<ul>
<li><a href="http://www.webstandards.blog.br/exemplos/alinhamento-horizontal-vertical-css-relativo-elemento.html" title="Exemplo de alinhamento vertical e horizontal em relação a um elemento com XHTML e CSS">Exemplo de alinhamento horizontal e vertical relativo a um elemento</a></li>
<li><a href="http://webkrause.com/blog/2009/04/posicionamento-relativo-com-css.html" title="Posicionamento relativo com CSS." rel="friend met co-worker colleague">Posicionamento relativo</a></li>
<li><a href="http://project47.viscountbox.com/alinhamento-horizontal-e-vertical/" title="Alinhamento horizontal e vertical - post project.47" rel="friend met co-worker colleague">Alinhamento horizontal e vertical</a></li>
</ul>


<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/html/listagem-horizontal-com-itens-de-mesma-altura/' rel='bookmark' title='Listagem horizontal com itens de mesma altura'>Listagem horizontal com itens de mesma altura</a> <small>Como fazer uma listagem horizontal com itens de mesma altura...</small></li>
<li><a href='http://www.webstandards.blog.br/html/botao-expansivel-css-links-com-background/' rel='bookmark' title='Botão expansível CSS &#8211; links com background'>Botão expansível CSS &#8211; links com background</a> <small>Como fazer botões expansíveis com background em HTML e CSS....</small></li>
<li><a href='http://www.webstandards.blog.br/css/unidade-de-medida-em/' rel='bookmark' title='Unidade de medida &#8211; em'>Unidade de medida &#8211; em</a> <small>Por questões de compatibilidade entre os navegadores, nós adotamos como...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.webstandards.blog.br/css/alinhamento-vertical-e-horizontal-com-css/feed/</wfw:commentRss>
		<slash:comments>28</slash:comments>
		</item>
		<item>
		<title>Deixando seu site mais rápido: CSS sprites</title>
		<link>http://www.webstandards.blog.br/css/deixando-seu-site-mais-rapido-css-sprites/</link>
		<comments>http://www.webstandards.blog.br/css/deixando-seu-site-mais-rapido-css-sprites/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 19:37:18 +0000</pubDate>
		<dc:creator>Carlitos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[ícones]]></category>
		<category><![CDATA[sprites]]></category>

		<guid isPermaLink="false">http://www.webstandards.blog.br/?p=111</guid>
		<description><![CDATA[Muitos desenvolvedores iniciantes vem nos perguntar maneiras de diminuir o peso dos seus sites. O primeiro passo, com certeza, é fazer um código limpo, semantico, seguindo os princípios dos Web Standards. Mas há casos, como em grandes portais, que necessitamos dimiuir o carregamento do site ao máximo e uma boa alternativa para isso é a [...]

<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/html/como-inserir-videos-do-youtube-em-seu-site-com-xhtml-valido/' rel='bookmark' title='Como inserir vídeos do YouTube em seu site com XHTML válido'>Como inserir vídeos do YouTube em seu site com XHTML válido</a> <small>Em desuso. Esse código está ultrapassado em nosso padrão, então...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Muitos desenvolvedores iniciantes vem nos perguntar maneiras de diminuir o peso dos seus sites. O primeiro passo, com certeza, é fazer um código limpo, semantico, seguindo os princípios dos <a title="Blog sobre Web Standards" href="http://www.webstandards.blog.br/">Web Standards</a>.</p>
<p>Mas há casos, como em grandes portais, que necessitamos dimiuir o carregamento do site ao máximo e uma boa alternativa para isso é a técnica <strong>CSS sprites</strong>.</p>
<h4>Como funciona o CSS sprites?</h4>
<p>O princípio é o seguinte: se você utiliza diversos ícones em seu site, ao invés de salvar cada ícone separadamente, pode unir todos em um só arquivo, como no exemplo abaixo:</p>
<p style="text-align: center;"><img class="size-full wp-image-112" title="Ícones" src="http://www.webstandards.blog.br/wp-content/uploads/2009/03/icones.png" alt="Exemplo de imagem com diversos ícones, para CSS sprites" width="432" height="136" /></p>
<p style="text-align: center;"><em>Créditos: <a title="Visitar set de ícones no famfamfam.com" href="http://www.famfamfam.com/lab/icons/mini/">famfamfam.com</a></em></p>
<p style="text-align: left;">Para usar cada ícone específico, deve-se criar uma classe para o elemento desejado (um link, por exemplo) que use esta imagem como <em>background</em> deslocando seu posicionamento conforme desejado.</p>
<p style="text-align: left;">Por exemplo, caso seja necessário usar o ícone do Flash, é só fazer o seguinte HTML:</p>
<pre class="brush: html">
&lt;a class=&quot;flash&quot; href=&quot;#&quot; title=&quot;Flash&quot;&gt;Flash&lt;/a&gt;
</pre>
<p>O CSS neste caso é bem tranquilo de fazer necessitando, somente, mudar a posição do fundo:</p>
<pre class="brush: css">
.voltar, .avancar, .flash { background-image: url(icones.png); background-repeat: no-repeat; }
.flash { background-position: -209px 0; }
</pre>
<p>A primeira linha é só um exemplo das várias classes criadas para os ícones distintos, definindo a imagem e a repetição de fundo, enquanto a classe específica (segunda linha) só define o posicionamento do mesmo.</p>
<h4>Mas por que este método deixa meu site mais leve?</h4>
<p>A resposta para esta pergunta é muito simples. Ao invés do usuário carregar imagem por imagem, ele carrega todas de uma vez, fazendo apenas uma requisição para o servidor, o que torna todo o processo mair rápido. Além disso, quando carregada, a imagem exibirá todos os ícones do site de uma só vez, proporcionando uma melhor navegação aos usuários.</p>


<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/html/como-inserir-videos-do-youtube-em-seu-site-com-xhtml-valido/' rel='bookmark' title='Como inserir vídeos do YouTube em seu site com XHTML válido'>Como inserir vídeos do YouTube em seu site com XHTML válido</a> <small>Em desuso. Esse código está ultrapassado em nosso padrão, então...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.webstandards.blog.br/css/deixando-seu-site-mais-rapido-css-sprites/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Botão expansível CSS &#8211; links com background</title>
		<link>http://www.webstandards.blog.br/html/botao-expansivel-css-links-com-background/</link>
		<comments>http://www.webstandards.blog.br/html/botao-expansivel-css-links-com-background/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 19:53:43 +0000</pubDate>
		<dc:creator>linke</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[HTML]]></category>
		<category><![CDATA[botão expansível]]></category>

		<guid isPermaLink="false">http://www.webstandards.blog.br/?p=95</guid>
		<description><![CDATA[Como fazer botões expansíveis com background em HTML e CSS.

<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/css/alinhamento-vertical-e-horizontal-com-css/' rel='bookmark' title='Alinhamento vertical e horizontal com CSS'>Alinhamento vertical e horizontal com CSS</a> <small>A forma seguinte de alinhamento vertical e horizontal é uma...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<h4>Porque utilizar botões expansíveis:</h4>
<ul>
<li>Reduz número de arquivos;</li>
<li>Reduz arquivos a serem baixados pelo usuário;</li>
<li>Carregamento da página mais rápido;</li>
<li>Reduz classes no HTML / linhas de CSS;</li>
<li>Uma classe = utilizado em todos* os botões (* todos com o mesmo estilo dentro do padrão do site).</li>
</ul>
<p><img src="http://www.webstandards.blog.br/wp-content/uploads/2009/03/botao_expansivel_exemplo.jpg" alt="Botão expansível CSS" title="Botão expansível CSS" width="200" height="154" class="aligncenter size-full wp-image-96" /></p>
<p>Convencido disto, aprenda como fazer:</p>
<ol>
<li>Criar a imagem do botão:</li>
<li>Dividir a imagem em 2 partes:
<ul>
<li>O botão será formado por duas peças: o lado esquerdo, e o direito.</li>
<li>
<p>Divida a imagem deixando o lado esquerdo contendo somente a borda esquerda, veja o exemplo (print do photoshop). Salve como <strong>botao_esquerdo.png</strong>:</p>
<div id="attachment_97" class="wp-caption aligncenter" style="width: 310px"><img src="http://www.webstandards.blog.br/wp-content/uploads/2009/03/botao_expansivel_passo1-300x167.jpg" alt="Botão expansível CSS - Passo 1" title="Print PS - botão expansível CSS" width="300" height="167" class="size-medium wp-image-97" /><p class="wp-caption-text">Botão expansível CSS - Passo 1</p></div>
<p>Para fazer o lado direito, recorde o restante do botão <em>que não seja a borda esquerda</em>. Abra um novo arquivo com dimensões maiores, por exemplo: Se o botão for WIDTH 100px por HEIGHT 20px, o lado direito terá que ter uma largura de 500px. Essa é a imagem que vai fazer a &#8220;expansão&#8221;. Siga os passos:</p>
</li>
<li>Selecione o lado direito</li>
<li>Abra um novo arquivo (só para ele) <a href="http://www.webstandards.blog.br/wp-content/uploads/2009/03/botao_expansivel_novo1.jpg"><img src="http://www.webstandards.blog.br/wp-content/uploads/2009/03/botao_expansivel_novo1-300x87.jpg" alt="Criando a imagem do lado direito" title="Criando a imagem do lado direito" width="300" height="87" class="aligncenter size-medium wp-image-103" /></a></li>
<li>Coloque a borda de um lado da imagem (cole no canto direito)</li>
<li>Selecione uma medida 1px(largura) por altura total da imagem. Vamos fazer esse pixel ser igual para todo o resto da imagem</li>
<li>
          Com esse pixel selecionado, (CTRL + T ou EDIT > Free Transform). Agora sim, exenta esse pixel até o outro lado da imagem.<br />
          <div id="attachment_108" class="wp-caption aligncenter" style="width: 175px"><a href="http://www.webstandards.blog.br/wp-content/uploads/2009/03/botao_expansivel_free1.jpg"><img src="http://www.webstandards.blog.br/wp-content/uploads/2009/03/botao_expansivel_free1-165x300.jpg" alt="Photoshop Redimensionamento" title="Photoshop Redimensionamento" width="165" height="300" class="size-medium wp-image-108" /></a><p class="wp-caption-text">Photoshop Redimensionamento</p></div>
        </li>
<li>Salve como: <strong>botao_direito.png</strong></li>
</ul>
</li>
<li>
<p><strong>HTML: </strong>Agora temos as duas imagens separadas. Chega de Photoshop, vamos para o <strong>o código</strong>:</p>
<pre class="brush: html">
      &lt;a class=&quot;botao_expansivel&quot; href=&quot;#&quot; title=&quot;Botão expansível&quot;&gt;&lt;strong&gt;Botão expansível&lt;/strong&gt;&lt;/a&gt;
    </pre>
<p><em>- Além do link precisamos de um elemento dentro dele para colocar o outro lado da imagem. Pode ser um EM, SPAN ou STRONG.</em> Como nós gostamos dos Webstandards, indicamos o STRONG, pois não ficará sem sentido como um SPAN, por exemplo.</p>
</li>
<li>
<p>Código CSS*:</p>
<pre class="brush: css">
      .botao_expansivel { display: inline-block; padding-left: 5px; background: url(../imagens/botao_esquerdo.png) left no-repeat; }
      .botao_expansivel strong { display: inline-block; padding: 5px; background: url(../imagens/botao_direito.png) right no-repeat; }
    </pre>
</li>
</ol>
<p><strong>Quem usa os botões expansíveis (HTML + CSS)?</strong></p>
<ul>
<li><a href="http://www.tecnisa.com.br" title="Construtora Tecnisa">Construtora Tecnisa</a>: ex.: botão de busca no topo.</li>
<li><a href="http://www.portoseguro.com.br/porto-seguro/produtos/imovel.html" title="Porto Seguro">Porto Seguro</a>: os botões verdes no meio do conteúdo.</li>
</ul>
<p><em>*CSS: Utilizei no CSS do exemplo a <a href="http://www.webstandards.blog.br/css/abreviacao-das-propriedades-css/" title="Abreviação das propriedades CSS">Abreviação das propriedades CSS</a></em></p>


<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/css/alinhamento-vertical-e-horizontal-com-css/' rel='bookmark' title='Alinhamento vertical e horizontal com CSS'>Alinhamento vertical e horizontal com CSS</a> <small>A forma seguinte de alinhamento vertical e horizontal é uma...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.webstandards.blog.br/html/botao-expansivel-css-links-com-background/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Hack para Safari e Google Chrome</title>
		<link>http://www.webstandards.blog.br/css/hack-para-safari-e-google-chrome/</link>
		<comments>http://www.webstandards.blog.br/css/hack-para-safari-e-google-chrome/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 15:00:11 +0000</pubDate>
		<dc:creator>Carlitos</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Hacks]]></category>
		<category><![CDATA[google chrome]]></category>
		<category><![CDATA[safari]]></category>

		<guid isPermaLink="false">http://www.webstandards.blog.br/?p=88</guid>
		<description><![CDATA[Em desuso. Esse código está ultrapassado em nosso padrão, então evitamos usá-lo. Fugindo um pouco de soluções específicas para o IE6 (já estava ficando cansativo!) vamos mostrar como fazer um hack específico para o navegador Safari e Google Chrome. Sim, nós sabemos que usar hacks é &#8220;feio&#8221;, mas estamos aqui para apresentar soluções e, caso [...]

<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/ferramenta/google-chrome-frame/' rel='bookmark' title='Google Chrome Frame'>Google Chrome Frame</a> <small>O Google Chrome Frame possui uma proposta de simplesmente &#8220;substituir&#8221;...</small></li>
<li><a href='http://www.webstandards.blog.br/css/hack-para-internet-explorer-6/' rel='bookmark' title='Hack para Internet Explorer 6'>Hack para Internet Explorer 6</a> <small>Em desuso. Esse código está ultrapassado em nosso padrão, então...</small></li>
<li><a href='http://www.webstandards.blog.br/bugs/historico-de-bugs-encontre-solucoes-para-aqueles-bugs-mais-esquisitos/' rel='bookmark' title='Histórico de bugs: encontre soluções para aqueles bugs mais esquisitos!'>Histórico de bugs: encontre soluções para aqueles bugs mais esquisitos!</a> <small>Sabe aquele bug que você encontra em situações específicas e...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p class="desuso"><strong>Em desuso</strong>. Esse código está ultrapassado em nosso padrão, então evitamos usá-lo.</p>
<p>Fugindo um pouco de soluções específicas para o IE6 (já estava ficando cansativo!) vamos mostrar como fazer um <em>hack</em> específico para o navegador Safari e Google Chrome.</p>
<p>Sim, nós sabemos que usar <em>hacks</em> é &#8220;feio&#8221;, mas estamos aqui para apresentar soluções e, caso essa seja sua última opção, use!</p>
<p>Como os dois browsers utilizam a mesma engine de renderização, a Webkit, este hack acaba servindo para os dois navegadores:</p>
<pre class="brush: css">
body:nth-of-type(1) elemento { propriedade: valor; }
</pre>
<p>&#8212;&#8211;</p>
<p>* Update: <em>Post atualizado</em>, pois o hack antigo era interpretado pelo o IE7 também. Este novo método funciona somente para os navegadores Google Chrome e Safari.</p>
<p>* Update: <em>Solução nos comentários</em>, alguns usuários comentaram a mesma solução, conforme a necessidade verifique esses comentários, pois raramente fazemos ajuste apenas no chrome.</p>


<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/ferramenta/google-chrome-frame/' rel='bookmark' title='Google Chrome Frame'>Google Chrome Frame</a> <small>O Google Chrome Frame possui uma proposta de simplesmente &#8220;substituir&#8221;...</small></li>
<li><a href='http://www.webstandards.blog.br/css/hack-para-internet-explorer-6/' rel='bookmark' title='Hack para Internet Explorer 6'>Hack para Internet Explorer 6</a> <small>Em desuso. Esse código está ultrapassado em nosso padrão, então...</small></li>
<li><a href='http://www.webstandards.blog.br/bugs/historico-de-bugs-encontre-solucoes-para-aqueles-bugs-mais-esquisitos/' rel='bookmark' title='Histórico de bugs: encontre soluções para aqueles bugs mais esquisitos!'>Histórico de bugs: encontre soluções para aqueles bugs mais esquisitos!</a> <small>Sabe aquele bug que você encontra em situações específicas e...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.webstandards.blog.br/css/hack-para-safari-e-google-chrome/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>Rodapé fixo</title>
		<link>http://www.webstandards.blog.br/css/rodape-fixo/</link>
		<comments>http://www.webstandards.blog.br/css/rodape-fixo/#comments</comments>
		<pubDate>Tue, 17 Feb 2009 18:08:11 +0000</pubDate>
		<dc:creator>g3</dc:creator>
				<category><![CDATA[CSS]]></category>

		<guid isPermaLink="false">http://www.webstandards.blog.br/?p=81</guid>
		<description><![CDATA[O post seguinte ensina como fazer um rodapé fixo no fim da página independente do conteúdo. Primeiro passo é escrever um XHTML na seguinte estrutura: ... &#60;body&#62; &#60;div id=&#34;limites&#34;&#62; &#60;div id=&#34;conteudo&#34; class=&#34;contemfloat&#34;&#62; &#60;div id=&#34;coluna1&#34;&#62; Coluna 1 &#60;/div&#62; &#60;div id=&#34;coluna2&#34;&#62; Coluna 2 &#60;/div&#62; &#60;/div&#62; &#60;div id=&#34;rodape&#34;&#62; Rodapé &#60;/div&#62; &#60;/div&#62; &#60;/body&#62; ... A div#rodape tem que estar [...]

<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/css/documento-base-para-css/' rel='bookmark' title='Documento base para CSS'>Documento base para CSS</a> <small>Nosso padrão de organização para estilização é separar os estilos...</small></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>O post seguinte ensina como fazer um <a title="Veja o exemplo de rodapé fixo" href="http://www.webstandards.blog.br/exemplos/rodape-fixo.html">rodapé fixo no fim da página</a> independente do conteúdo.</p>
<p>Primeiro passo é escrever um <abbr title="Extensible HyperText Markup Language">XHTML</abbr> na seguinte estrutura:</p>
<pre class="brush: xhtml">
...
&lt;body&gt;
&lt;div id=&quot;limites&quot;&gt;
&lt;div id=&quot;conteudo&quot; class=&quot;contemfloat&quot;&gt;
&lt;div id=&quot;coluna1&quot;&gt;
Coluna 1
&lt;/div&gt;
&lt;div id=&quot;coluna2&quot;&gt;
Coluna 2
&lt;/div&gt;
&lt;/div&gt;
&lt;div id=&quot;rodape&quot;&gt;
Rodapé
&lt;/div&gt;
&lt;/div&gt;
&lt;/body&gt;
...
</pre>
<p>A div#rodape tem que estar no mesmo nível que a div#conteudo dentro da div#limites.</p>
<pre>|-----------------------------------|
| <span style="color:red;">body</span>                              |
|                                   |
| |-------------------------------| |
| |                               | |
| | <span style="color:green;">limites</span>                       | |
| |                               | |
| |  |-------------------------|  | |
| |  |                         |  | |
| |  | <span style="color:purple;">conteudo</span>                |  | |
| |  |                         |  | |
| |  |  |-------------------|  |  | |
| |  |  | <span style="color:blue;">coluna1</span>           |  |  | |
| |  |  |-------------------|  |  | |
| |  |  | <span style="color:blue;">coluna2</span>           |  |  | |
| |  |  |-------------------|  |  | |
| |  |                         |  | |
| |  |-------------------------|  | |
| |                               | |
| |  |-------------------------|  | |
| |  | <span style="color:red;">rodape</span>                  |  | |
| |  |-------------------------|  | |
| |                               | |
| |-------------------------------| |</pre>
<p>Feito o <abbr title="Extensible HyperText Markup Language">XHTML</abbr> escreva os seguintes estilos(<abbr title="Cascading Style Sheets">CSS</abbr>):</p>
<pre class="brush: css">
* { margin: 0; padding: 0; z-index: 1; }
html, body { height: 100%; }

/* contendo float */
.contemfloat:after { content: &quot;.&quot;; display: block; height: 0; clear: both; visibility: hidden; }
.contemfloat { display: inline-block; }
/* Hides from IE-mac \*/
* .contemfloat { height: 1%; }
.contemfloat { display: block; }
/* End hide from IE-mac */

#limites { position: relative; width: 600px; min-height: 100%; margin: 0 auto; background-color: #eee; }
* html #limites { height: 100%; }

#conteudo { padding-bottom: 80px; border-bottom: 1px solid red; }

#coluna1 { float: left; width: 400px; background-color: #ecc; }
#coluna2 { width: 200px; margin-left: 400px; background-color: gray; }

#rodape { position: absolute; bottom: 0; left: 0; width: 600px; height: 50px; padding-top: 10px; background-color: #cce; text-align: center; }
</pre>
<p>No html, body e div#limites precisam ter altura 100%. No caso da div#limites coloque altura mínima (min-height) 100%, mas como essa propriedade não renderiza no Internet Explorer 6 é preciso <a title="Veja como fazer Hack para Internet Explorer 6" href="http://www.webstandards.blog.br/css/hack-para-internet-explorer-6/">adicionar uma linha apenas para o <abbr title="Internet Explorer 6">IE6</abbr></a> com altura (height) 100%, isso funciona porque o <abbr title="Internet Explorer 6">IE6</abbr> não respeita uma altura definida caso o conteúdo do elemento ultrapasse essa altura.</p>
<p><strong>Atenção</strong>, A div#limites tem posição relativa para possibilitar a div#rodape ficar sempre na base da div#limites em posição absoluta.</p>
<p>No <abbr title="Extensible HyperText Markup Language">XHTML</abbr> foi inserido a <a title="Métodos para conter elementos com FLOAT" href="http://www.webstandards.blog.br/css/metodos-para-conter-elementos-com-float/">classe &#8220;contemfloat&#8221;</a> na div#conteudo porque dentro dela contém elemento com float.</p>
<p>No <abbr title="Cascading Style Sheets">CSS</abbr> a div#conteudo deve ter valor no padding-bottom igual ou maior que a altura da div#rodape, isso é feito para a div#rodape não ficar por cima da div#conteudo.</p>
<p>No exemplo a div#conteudo está com uma borda vermelha para mostrar o espaço do padding-bottom entre o conteúdo até a borda.</p>
<p>Veja o <a title="Ver exemplo de rodapé fixo" href="http://www.webstandards.blog.br/exemplos/rodape-fixo.html">exemplo</a>.</p>


<h5>Artigos relacionados:</h5><ol><li><a href='http://www.webstandards.blog.br/css/documento-base-para-css/' rel='bookmark' title='Documento base para CSS'>Documento base para CSS</a> <small>Nosso padrão de organização para estilização é separar os estilos...</small></li>
</ol>]]></content:encoded>
			<wfw:commentRss>http://www.webstandards.blog.br/css/rodape-fixo/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
	</channel>
</rss>

