<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Desenvolvimento &#193;gil - Blog da Improve It: Tag IE</title>
    <link>http://blog.improveit.com.br/articles/tag/ie</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description></description>
    <item>
      <title>Margens na tag HR: um caso resolvido</title>
      <description>&lt;blockquote class="excerpt"&gt;
  &lt;p&gt;Basicamente, o tapa na cabe&#231;a que faz o IE se comportar direitinho &#233; o &lt;code&gt;display: block&lt;/code&gt;. Depois dessa, voc&#234; p&#245;e a margem que quiser no &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sou dos que usa a tag &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; para dividir se&#231;&#245;es. &#201; semanticamente mais coerente do que separar usando as pr&#243;prias bordas dos divs, fica melhor quando se v&#234; o HTML sem CSS, essas coisas que j&#225; se discute &#224; be&#231;a por a&#237;. Aprendi a apreciar sua utilidade.&lt;/p&gt;

&lt;p&gt;Mas o fato &#233; que &#233; enjoado dar estilo a esta tag. Para cada browser devem-se editar &lt;a href="http://www.sovavsiti.cz/css/hr.html"&gt;atributos diferentes para se alcan&#231;ar um mesmo efeito&lt;/a&gt;. Enfim, com algum jeitinho, deixa-se o &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; com a mesma cara em todos os browsers.&lt;/p&gt;

&lt;p&gt;O que mata mesmo, o que deixa f&#243;runs de cabelo em p&#233; &#233; a tal &lt;strong&gt;margem&lt;/strong&gt; que fica em volta do &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; no IE. A margem no IE &#233; teimosa, indestrut&#237;vel, incontrol&#225;vel, inestiliz&#225;vel. Por todo lugar que eu procurasse, as pessoas decidiam seguir com as margens mesmo, e os mais persistentes chegavam ao ponto de &lt;a href="http://www.robertnyman.com/2007/03/09/a-hard-challenge-styling-an-hr-element"&gt;inserir o &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; num &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt;&lt;/a&gt; para conseguir dar o estilo que quiserem. Ou seja, uns desistiam muito f&#225;cil, outros recorriam a medidas desesperadas para fazer a coisa de qualquer jeito.&lt;/p&gt;

&lt;p&gt;Um dia encontrei dois posts que se aproximavam da solu&#231;&#227;o. Sozinho, nenhum dos dois resolvia o caso. Mas juntando os dois funcionava! Fiz os testes e, de fato, misturando os dois racioc&#237;nios eu conseguia a medida que eu quisesse em qualquer browser que fosse &amp;mdash; at&#233; zero. Mas, numa jogada um tanto infeliz, n&#227;o salvei os posts nos favoritos, nem salvei o arquivo de testes. Uma resposta bastante procurada, e eu a perdi de bobeira...&lt;/p&gt;

&lt;p&gt;Este artigo &#233; sobre o meu caso: eu queria usar o &lt;em&gt;&lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; livre de divs sem sentido, e com margem &lt;strong&gt;zero&lt;/strong&gt;; at&#233; no IE&lt;/em&gt;. E, sobretudo, o artigo &#233; para deixar a resposta num lugar seguro e ao alcance de todos. Agora que eu lembrei a solu&#231;&#227;o, n&#227;o perco mais.&lt;/p&gt;

&lt;h3&gt;&amp;ldquo;Pescotapa&amp;rdquo;&lt;/h3&gt;

&lt;p&gt;Depois que perdi de vista os posts e as semanas se passaram, tudo o que eu lembrava &#233; que o Internet Explorer precisava de um tapa na cabe&#231;a: era um atributo nada intuitivo e totalmente inesperado, que surpreendentemente o fazia acordar para a realidade. Basicamente, o tapa na cabe&#231;a que faz o IE se comportar direitinho &#233; o &lt;code&gt;display: block&lt;/code&gt;. Depois dessa, voc&#234; p&#245;e a margem que quiser no &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Vai entender. O &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; j&#225; &#233; um elemento em bloco. Tem toda a cara de elemento em bloco. Pula linha em cima, pula linha embaixo, n&#227;o tem nada de inline. E &#233; por isso que os f&#243;runs tanto rodam atr&#225;s de uma solu&#231;&#227;o: poucos suspeitariam que &#233; necess&#225;rio lembrar a ele que de fato &#233; um bloco. Dizer &lt;code&gt;display: block&lt;/code&gt; seria redundante e desnecess&#225;rio. Mas o danado do IEca faz quest&#227;o disso para se dar conta de que &amp;ldquo;ah, &#233;, &#233; verdade...&amp;rdquo;.&lt;/p&gt;

&lt;h3&gt;Como aconteceu comigo:&lt;/h3&gt;

&lt;p&gt;Vamos ao meu caso. Eu pretendia inserir umas tags &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; no &lt;a href="http://www.patriciafigueira.com.br"&gt;site da fot&#243;grafa Patricia Figueira&lt;/a&gt;, como experimento para implementa&#231;&#227;o futura no pr&#243;prio site e em nosso produto em desenvolvimento, o &lt;a href="http://beonthe.net/"&gt;beonthe.net&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;O primeiro passo foi inserir tags &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; nos espa&#231;os entre cabe&#231;alho, conte&#250;do principal e rodap&#233;. Vamos ao HTML:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;div id="header"&amp;gt;
  (conte&#250;do do cabe&#231;alho)
&amp;lt;/div&amp;gt;
&amp;lt;hr /&amp;gt;
&amp;lt;div id="main_content"&amp;gt;
  (conte&#250;do principal)
&amp;lt;/div&amp;gt;
&amp;lt;hr /&amp;gt;
&amp;lt;div id="footer"&amp;gt;
  (conte&#250;do do rodap&#233;)
&amp;lt;/div&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;E logo surgiu a linha cinza entre os divs. Ficou assim:&lt;/p&gt;

&lt;p&gt;Safari: &lt;img src="http://blog.improveit.com.br/files/2008-09-02_1_inserindo_hr_safari.gif" alt="O hr foi inserido corretamente." title="No Safari, o hr foi inserido corretamente."/&gt;&lt;/p&gt;

&lt;p&gt;Opera: &lt;img src="http://blog.improveit.com.br/files/2008-09-02_1_inserindo_hr_opera.gif" alt="O hr tamb&#233;m foi inserido corretamente." title="No Opera, o hr tamb&#233;m foi inserido corretamente."/&gt;&lt;/p&gt;

&lt;p&gt;Firefox: &lt;img src="http://blog.improveit.com.br/files/2008-09-02_1_inserindo_hr_firefox.gif" alt="O hr foi inserido corretamente como os outros." title="No Firefox, o hr foi inserido corretamente como os outros."/&gt;&lt;/p&gt;

&lt;p&gt;Internet Explorer 7: &lt;img src="http://blog.improveit.com.br/files/2008-09-02_1_inserindo_hr_ie_7.gif" alt="O hr foi inserido corretamente, mas deixou margens que afastaram os conte&#250;dos dos divs." title="No IE7, o hr foi inserido corretamente, mas deixou margens que afastaram os conte&#250;dos dos divs."/&gt;&lt;/p&gt;

&lt;p&gt;Internet Explorer 6: &lt;img src="http://blog.improveit.com.br/files/2008-09-02_1_inserindo_hr_ie_6.gif" alt="O hr foi inserido corretamente, mas tamb&#233;m deixou as mesmas margens que afastaram os conte&#250;dos dos divs." title="No IE6, o hr foi inserido corretamente, mas tal como no IE7, deixou margens que afastaram os conte&#250;dos dos divs."/&gt;&lt;/p&gt;

&lt;p&gt;(Ah, o IE...)&lt;/p&gt;

&lt;p&gt;Linhas inseridas, eu queria que cada divis&#243;ria tivesse as seguintes caracter&#237;sticas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Quebrasse poss&#237;veis floats;&lt;/li&gt;
&lt;li&gt;N&#227;o ocupasse qualquer espa&#231;o vertical;&lt;/li&gt;
&lt;li&gt;Fosse invis&#237;vel.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A primeira tarefa &#233; simples. Na folha de estilos &lt;code&gt;application.css&lt;/code&gt;, usamos:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;hr {
  clear:      both;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;h4&gt;Nota: Depois vi que, para limpar de fato os floats do &lt;code&gt;div#main_content&lt;/code&gt;, foi necess&#225;rio p&#244;r os hr&amp;rsquo;s &lt;strong&gt;dentro&lt;/strong&gt; do &lt;code&gt;#main_content&lt;/code&gt;, em suas extremidades, e n&#227;o adjacentes a ele. Mas isto &#233; papo para toda uma outra discuss&#227;o e, para efeito de ilustra&#231;&#227;o, vou continuar exibindo os hr&amp;rsquo;s como se estivessem &lt;strong&gt;entre&lt;/strong&gt; o &lt;code&gt;#main_content&lt;/code&gt; e o &lt;code&gt;#header&lt;/code&gt;.&lt;/h4&gt;

&lt;p&gt;Agora vem a segunda tarefa: limpar os espa&#231;os que a linha gera no IE. Mas, como dito antes e tantas vezes blogs afora, a margem do hr no IE &#233; turrona, implac&#225;vel, indel&#233;vel, inoxid&#225;vel. Tem gente tentando de tudo: &lt;code&gt;margin: 0&lt;/code&gt;, &lt;code&gt;padding: 0&lt;/code&gt;, &lt;code&gt;line-height: 0&lt;/code&gt;, &lt;code&gt;font-size: 0&lt;/code&gt;, at&#233; &lt;code&gt;overflow: hidden&lt;/code&gt;. Zerar as margens at&#233; ajuda com os browsers que seguem os padr&#245;es, mas nada acaba com o espa&#231;amento no IE.&lt;/p&gt;

&lt;p&gt;Ent&#227;o, em nosso &lt;code&gt;application.css&lt;/code&gt;, cuidemos dos browsers inteligentes para garantir que n&#227;o haja margens:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;hr {
  clear:      both;
  margin:     0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;A explica&#231;&#227;o para as margens insistentes do IE &#233; a seguinte: o IE renderiza o &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; com uma margem vertical de 7px a mais do que os outros browsers. Ou seja, se voc&#234; escreve...&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;hr {
  clear:      both;
  margin:     7px 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;... Voc&#234; tem num browser decente o esperado: &lt;img src="http://blog.improveit.com.br/files/2008-09-02_2_hr_margin_7_0_safari.gif" alt="Exatamente 7px de espa&#231;o para cima e 7px para baixo." title="Num browser decente, temos o esperado: 7px de espa&#231;o para cima e 7px para baixo."/&gt;&lt;/p&gt;

&lt;p&gt;E no IE, uma soma do que voc&#234; inseriu mais a margem nativa: &lt;img src="http://blog.improveit.com.br/files/2008-09-02_2_hr_margin_7_0_ie_6.gif" alt="14px para cima e 14px para baixo (7 + 7)." title="No IE, temos a margem que inserimos somada &#224; margem nativa de seus hr&amp;rsquo;s."/&gt;&lt;/p&gt;

&lt;p&gt;&amp;ldquo;Ora&amp;rdquo;, posso pensar, &amp;ldquo;Ent&#227;o &#233; s&#243; escrever &lt;strong&gt;margens negativas&lt;/strong&gt; para o IE&amp;rdquo;. Seria o intuitivo, mas o IE n&#227;o trata de coisas como &amp;ldquo;o intuitivo&amp;rdquo;. N&#227;o funciona: o IE tira a margem superior, mas jamais elimina a margem inferior! Veja: &lt;img src="http://blog.improveit.com.br/files/2008-09-02_3_hr_margem_negativa_ie_6.gif" alt="O hr fica zerado em cima, mas o espa&#231;o de baixo dobra: ele assumiu os 7px de cima!" title="Usando margens negativas no IE, fazemos o espa&#231;o de cima sumir, mas o de baixo dobra: ele assumiu os 7px de cima! Mas que raios!"/&gt;&lt;/p&gt;

&lt;h3&gt;O pulo do gato&lt;/h3&gt;

&lt;p&gt;Entra na nossa folha de estilos &lt;code&gt;application.css&lt;/code&gt; o atributo &lt;em&gt;&lt;code&gt;display: block&lt;/code&gt;&lt;/em&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;hr {
  clear:      both;
  margin:     0;
  display:    block;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Este &#233; o &#250;ltimo atributo em que eu pensaria para eliminar margens. N&#227;o sei explicar por que d&#225; certo. &#201; contra-intuitivo. &#201; redundante. &#201; idiota. E mesmo assim (ou talvez por isso mesmo) faz o IE acordar.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Agora sim&lt;/strong&gt;, podemos repensar a quest&#227;o das margens negativas. Ent&#227;o corrigimos o &lt;code&gt;application.css&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;hr {
  clear:      both;
  margin:     -7px 0;
  display:    block;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;E voil&#224;! Finalmente, um &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; sem margens! &lt;img src="http://blog.improveit.com.br/files/2008-09-02_4_hr_sem_margens_ie_6.gif" alt="N&#227;o &#233; ilus&#227;o! &#201; poss&#237;vel eliminar totalmente as margens de um hr no IE!" title="N&#227;o &#233; ilus&#227;o! &#201; poss&#237;vel eliminar totalmente as margens de um hr no IE!"/&gt;&lt;/p&gt;

&lt;h3&gt;Coment&#225;rio condicional:&lt;/h3&gt;

&lt;p&gt;O problema de usar margens negativas &#233; que os browsers inteligentes as interpretam como elas s&#227;o &amp;mdash; negativas:
&lt;img src="http://blog.improveit.com.br/files/2008-09-02_5_hr_margens_negativas_safari.gif" alt="Margens negativas no Safari." title="Margens negativas no Safari."/&gt;&lt;/p&gt;

&lt;p&gt;Temos que definir um comportamento para cada tipo de browser.&lt;/p&gt;

&lt;p&gt;O que eu costumo usar s&#227;o &lt;a href="http://www.quirksmode.org/css/condcom.html"&gt;coment&#225;rios condicionais&lt;/a&gt;. H&#225; quem diga que &lt;a href="http://meiert.com/en/blog/20070201/why-conditional-comments-are-bad-repeat-bad/"&gt;eles s&#227;o maus&lt;/a&gt;, mas at&#233; agora s&#243; t&#234;m me ajudado.&lt;/p&gt;

&lt;p&gt;Vamos ao &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt; no HTML. L&#225; inserimos uma condi&#231;&#227;o para o IE:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;&amp;lt;!--[if IE]&amp;gt;
  &amp;lt;link href="/stylesheets/application_ie.css" media="all" rel="stylesheet" type="text/css" /&amp;gt;
&amp;lt;![endif]--&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Ela serve para chamar uma folha de estilo com regras espec&#237;ficas para o Internet Explorer: &lt;strong&gt;&lt;code&gt;application_ie.css&lt;/code&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Nesta nova folha &lt;code&gt;application_ie.css&lt;/code&gt;, aplicamos as margens negativas que t&#237;nhamos at&#233; ent&#227;o:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;hr {
  margin:     -7px 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;E pronto. Esta &#233; a &#250;nica regra que diferencia o &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; nos browsers inteligentes e no Internet Explorer. Agora podemos zerar as margens no nosso &lt;code&gt;application.css&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;hr {
  clear:      both;
  margin:     0;
  display:    block;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;E o resultado &#233;: &lt;strong&gt;consenso&lt;/strong&gt;! Nos browsers inteligentes:
&lt;img src="http://blog.improveit.com.br/files/2008-09-02_1_inserindo_hr_safari.gif" alt="(Apar&#234;ncia do hr no Safari. &#201; a mesma do IE!)" title="Apar&#234;ncia do hr no Safari. &#201; a mesma do IE!"/&gt;&lt;/p&gt;

&lt;p&gt;... e no IE:
&lt;img src="http://blog.improveit.com.br/files/2008-09-02_4_hr_sem_margens_ie_6.gif" alt="(Apar&#234;ncia do hr no IE6. Agora o hr de todos os browsers tem a mesma apar&#234;ncia.)" title="Apar&#234;ncia do hr no IE6. Agora o hr de todos os browsers tem a mesma apar&#234;ncia."/&gt;&lt;/p&gt;

&lt;h3&gt;Acabamento&lt;/h3&gt;

&lt;p&gt;Resta a terceira tarefa, que &#233; deixar invis&#237;veis as linhas divis&#243;rias. Isso &#233; f&#225;cil com &lt;code&gt;visibility: hidden&lt;/code&gt;:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;hr {
  clear:      both;
  margin:     0;
  display:    block;
  visibility: hidden;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;O que vai fazer com que o &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; fique invis&#237;vel, mas ainda ocupando o espa&#231;o que ocupava antes, de modo que fica uma lacuna de 2 pixels entre o cabe&#231;alho e o conte&#250;do principal: &lt;img src="http://blog.improveit.com.br/files/2008-09-02_6_hr_invisivel_lacuna.gif" alt="O hr agora sumiu, mas ainda ocupa o espa&#231;o que ocupava antes. Temos que nos livrar da lacuna." title="O hr agora sumiu, mas ainda ocupa o espa&#231;o que ocupava antes. Temos que nos livrar da lacuna."/&gt;&lt;/p&gt;

&lt;h4&gt;Nota: Usar &lt;code&gt;display: none&lt;/code&gt; n&#227;o &#233; &#250;til neste caso porque cancela o atributo &lt;code&gt;clear: both&lt;/code&gt;. E n&#243;s queremos que ele quebre os &lt;em&gt;floats&lt;/em&gt;. Neste caso, &#233; melhor ficar com &lt;code&gt;visibility: hidden&lt;/code&gt;.&lt;/h4&gt;

&lt;p&gt;Nos browsers decentes, esta lacuna &#233; devida &#224; espessura da borda. Bordas de 1px em volta de um elemento com altura zero resultam em 2px de altura total. Um aributo de borda deve resolver:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;hr {
  clear:      both;
  margin:     0;
  display:    block;
  visibility: hidden;
  border:     none;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;A lacuna some no Safari e no Opera. Mas Firefox e IE precisam de mais uma forcinha. Lembre-os que a altura do elemento deve ser nula:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;hr {
  clear:      both;
  margin:     0;
  display:    block;
  visibility: hidden;
  border:     none;
  height:     0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;No Firefox resolve. Mas no IE a lacuna, em vez de sumir, fica reduzida a 1px (Ah, o IE...). Isso porque nele as bordas n&#227;o s&#227;o definidas pelo atributo &lt;code&gt;border&lt;/code&gt;, mas pelo atributo &lt;code&gt;color&lt;/code&gt; (j&#225; mencionei que o IE n&#227;o trata de coisas como &amp;ldquo;o intuitivo&amp;rdquo;?). Como n&#227;o d&#225; para &amp;ldquo;zerar&amp;rdquo; a cor para sumir com a lacuna, o jeito &#233; retocar as margens que deixamos no &lt;code&gt;application_ie.css&lt;/code&gt;, contribuindo para as margens negativas com 1px em cima ou em baixo:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;hr {
  margin:     -8px 0 -7px 0;
}
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;E eis o resultado final: &lt;img src="http://blog.improveit.com.br/files/2008-09-02_7_hr_final.gif" alt="Em todos os browsers, uma linha divis&#243;ria sem margens e invis&#237;vel. Miss&#227;o cumprida." title="Em todos os browsers, uma linha divis&#243;ria sem margens e invis&#237;vel. Miss&#227;o cumprida."/&gt;&lt;/p&gt;

&lt;h3&gt;Conclus&#227;o&lt;/h3&gt;

&lt;p&gt;Este foi o meu caso bem espec&#237;fico com a tag &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt;. Se voc&#234; for uma das pessoas que se descabelavam por causa das margens teimosas no IE, saiba que h&#225; solu&#231;&#227;o. N&#227;o &#233; preciso desistir e adaptar seu precioso layout para se conformar com as margens, nem &#233; preciso inserir a tag num &lt;code&gt;&amp;lt;div&amp;gt;&lt;/code&gt; s&#243; para ela. Boas pr&#225;ticas j&#225;!&lt;/p&gt;

&lt;p&gt;Espero ter  contribu&#237;do para diminuir sua dor de cabe&#231;a. A resposta est&#225; agora aqui, para todo o mundo. E breve voc&#234; a ver&#225; implementada no &lt;a href="http://www.patriciafigueira.com.br"&gt;site da Patricia Figueira&lt;/a&gt; e no &lt;a href="http://beonthe.net/"&gt;beonthe.net&lt;/a&gt;. Mas se este post n&#227;o resolver o seu caso espec&#237;fico, escreva. Vamos juntos pensar em solu&#231;&#245;es para dominar o &lt;code&gt;&amp;lt;hr /&amp;gt;&lt;/code&gt; &amp;mdash; e, quem sabe, s&#243; quem sabe, o Internet Explorer.&lt;/p&gt;</description>
      <pubDate>Tue, 02 Sep 2008 12:33:00 -0300</pubDate>
      <guid isPermaLink="false">urn:uuid:71ec4e3a-2c7f-49e1-8468-b8153b66cec5</guid>
      <author>Leandro Mello</author>
      <link>http://blog.improveit.com.br/articles/2008/09/02/margens-na-tag-hr-um-caso-resolvido</link>
      <category>best practices</category>
      <category>CSS</category>
      <category>design</category>
      <category>layout</category>
      <category>IE</category>
    </item>
  </channel>
</rss>
