<?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>Vault7 &#187; code</title>
	<atom:link href="http://vault7.com/blog/category/code/feed" rel="self" type="application/rss+xml" />
	<link>http://vault7.com</link>
	<description>Bruno Daniel</description>
	<lastBuildDate>Fri, 12 Sep 2008 03:19:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>[css] clearing floats</title>
		<link>http://vault7.com/blog/css-clearing-floats</link>
		<comments>http://vault7.com/blog/css-clearing-floats#comments</comments>
		<pubDate>Sun, 09 Mar 2008 06:29:46 +0000</pubDate>
		<dc:creator>rev087</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[layout]]></category>

		<guid isPermaLink="false">http://www.vault7.com/blog/css-clearing-floats</guid>
		<description><![CDATA[Um problema muito comum em layouts usando a propriedade float é quando o &#8220;container&#8221; não se estica para acomodar as floats. Há muitas [...]]]></description>
			<content:encoded><![CDATA[
<p style="text-align: center"><img src="http://www.vault7.com/storage/stock/vault7/weblog/css.png" style="margin: 0px auto; display: block" /></p>
Um problema muito comum em layouts usando a propriedade <code>float</code> é quando o &#8220;container&#8221; não se estica para acomodar as floats. Há muitas maneiras de se resolver isso, mas a maioria inclui código adicional no html, geralmente uma <code>div</code> com <code>clear:both</code> ao fim do container. Mas todos nós sabemos que bagunçar o html com tags inúteis deixa a tia Semântica muito chateada.

Assim, a minha solução preferida, bolada por Tony Aslett (fundador do site <a href="http://ccscreator.com">csscreator.com</a>) consiste em adicionar um conteúdo &#8220;virtual&#8221; ao final do container usando no seletor a pseudo-classe <code>:after</code>, e aplicar o <code>clear:both</code> nele, mais algumas linhas para esconder este conteúdo, e impedir que este ocupe espaço no layout. Segue o código:
<pre>.clearfix:after {
  content: ".";
  clear: both;
  display: block;
  height: 0;
  visibility: hidden;
}</pre>
No trecho de css acima, estamos adicionando um ponto (<code>content:"."</code>) no final do container identificado pela classe <code>clearfix</code>, setando sua propriedade <code>clear:both</code> e escondendo-o do layout.

Funciona em qualquer browser&#8230;bom, menos no nosso querido IEca. Você não achou que ia ser fácil assim, não é?
Mas com mais algumas linhas, resolvemos o problema:
<pre>
/* fix para o IE7 */
*+html .clearfix {
  min-height: 1%;
}

/* fix para o  IE6 */
* html .clearfix {
  height: 1%;
  overflow: visible;
}

/* fix para o resto do mundo */
.clearfix:after {
  content: ".";
  clear: both;
  display: block;
  height: 0;
  visibility: hidden;
}</pre>
E é isso. Não tenha medo das floats, elas são suas amigas :)]]></content:encoded>
			<wfw:commentRss>http://vault7.com/blog/css-clearing-floats/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[css] min-height hack</title>
		<link>http://vault7.com/blog/css-min-height-hack</link>
		<comments>http://vault7.com/blog/css-min-height-hack#comments</comments>
		<pubDate>Wed, 21 Mar 2007 12:23:05 +0000</pubDate>
		<dc:creator>rev087</dc:creator>
				<category><![CDATA[code]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[layout]]></category>

		<guid isPermaLink="false">http://www.vault7.com/css-min-height-hack</guid>
		<description><![CDATA[Hacks são necessários, mas sujar o html realmente não me deixa satisfeito. E um dos muitos problemas que nosso amigo IE(ca)6 tem com [...]]]></description>
			<content:encoded><![CDATA[<img src="http://www.vault7.com/storage/stock/vault7/weblog/css.png" alt="CSS" title="CSS" style="margin: 0px auto 10px; text-align: center; display: block" />

Hacks são necessários, mas sujar o html realmente não me deixa satisfeito. E um dos muitos problemas que nosso amigo IE(ca)6 tem com CSS é a propriedade <code>min-height</code>. Simplesmente não está implementada. Mesmo porque para o IE, o comportamento que deveria ser seguido com <code>min-height</code> é o padrão para qualquer elemento com uma <code>height</code> definida (graças á  <a href="http://www.quirksmode.org/css/overflow.html">implementação incorreta</a> da propriedade <code>overflow</code>&#8230;).

Procurando por uma solução decente, a que me pareceu melhor foi a apresentada por <a href="http://www.dustindiaz.com/min-height-fast-hack">Dustin Diaz</a>:
<pre lang="css">selector {
  min-height:500px;
  height:auto !important;
  height:500px;
}</pre>
Funciona assim: o IE6 tambem não implementa corretamente a declaração <code>!important</code>, e vai sobrescrever a declaração de <code>height:auto</code> com <code>height:500px</code>, &#8220;emulando&#8221; a propriedade <code>min-height:500px</code>. Todos os browsers modernos vão seguir a declaração <code>height:auto !important</code>, mantendo <code>min-height:500px</code> à  salvo. Nasty.

A brincadeira funciona no IE6, Mozilla/Firefox/Gecko, Opera 7.x+, Safari1.2. Nada de IE5.x, infelizmente. (quem liga? eu com certeza não! :P)]]></content:encoded>
			<wfw:commentRss>http://vault7.com/blog/css-min-height-hack/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
