<?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>Rogério Lino &#187; absolute</title>
	<atom:link href="http://rogeriolino.com/tags/absolute/feed/" rel="self" type="application/rss+xml" />
	<link>http://rogeriolino.com</link>
	<description>Desenvolvimento Web, tecnologia, jogos e etcetera</description>
	<lastBuildDate>Wed, 16 May 2012 19:51:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>CSS: Centralizar Horizontal e Vertical #2</title>
		<link>http://rogeriolino.com/2007/10/29/css-centralizar-horizontal-e-vertical-2/</link>
		<comments>http://rogeriolino.com/2007/10/29/css-centralizar-horizontal-e-vertical-2/#comments</comments>
		<pubDate>Tue, 30 Oct 2007 01:30:47 +0000</pubDate>
		<dc:creator>Rogério Alencar Lino Filho</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tableless]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[absolute]]></category>
		<category><![CDATA[centralizar]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[horizontal]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[table-cell]]></category>
		<category><![CDATA[vertical]]></category>
		<category><![CDATA[vertical-align]]></category>

		<guid isPermaLink="false">http://rogeriolino.wordpress.com/2007/10/29/css-centralizar-horizontal-e-vertical-2/</guid>
		<description><![CDATA[<p>Há algum tempo postei sobre como centralizar verticalmente e horizontalmente usando CSS, o que gerou alguns posts de visitantes revoltados porque não funcionava no IE7, fato que na época eu não tinha testado para essa versão do IE.</p> <p>Então, mesmo depois de muito tempo da versão já lançada, deixo um novo post testados nos browsers [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Há algum tempo postei sobre como centralizar verticalmente e horizontalmente usando CSS, o que gerou alguns posts de visitantes revoltados porque não funcionava no IE7, fato que na época eu não tinha testado para essa versão do IE.</p>
<p>Então, mesmo depois de muito tempo da versão já lançada, deixo um novo post testados nos browsers Firefox 2, IE6, IE7 e Opera 9.</p>
<pre name="code" class="css">
html, body {
    width: 100%;
    height: 100%;
    padding: 0px;
    margin: 0px;
}

#table {
    width: 100%;
    height: 100%;
    position: static;
    display: table;
    *overflow: hidden; /* hack para o IE6 e IE7 */
    *position: relative; /* hack para o IE6 e IE7 */
}

#cell {
    vertical-align: middle;
    display: table-cell;
    position: static;
    *top: 50%; /* hack para o IE6 e IE7 */
    *position: absolute; /* hack para o IE6 e IE7 */
}

#conteudo {
    top: -50%;
    width: 500px;
    margin: auto;
    position: relative;
    background: red;
}
</pre>
<p><a href="http://rogeriolino.wordpress.com/2007/01/17/css-centralizar-horizontal-e-vertical/" title="Centralizar Horizontal e Vertical">link para o outro post e comentários</a></p>
<div class="shr-publisher-97"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Frogeriolino.com%2F2007%2F10%2F29%2Fcss-centralizar-horizontal-e-vertical-2%2F' data-shr_title='CSS%3A+Centralizar+Horizontal+e+Vertical+%232'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Frogeriolino.com%2F2007%2F10%2F29%2Fcss-centralizar-horizontal-e-vertical-2%2F' data-shr_title='CSS%3A+Centralizar+Horizontal+e+Vertical+%232'></a><a class='shareaholic-tweetbutton' data-shr_count='horizontal' data-shr_href='http%3A%2F%2Frogeriolino.com%2F2007%2F10%2F29%2Fcss-centralizar-horizontal-e-vertical-2%2F' data-shr_title='CSS%3A+Centralizar+Horizontal+e+Vertical+%232'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://rogeriolino.com/2007/10/29/css-centralizar-horizontal-e-vertical-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>CSS: Centralizar Horizontal e Vertical</title>
		<link>http://rogeriolino.com/2007/01/17/css-centralizar-horizontal-e-vertical/</link>
		<comments>http://rogeriolino.com/2007/01/17/css-centralizar-horizontal-e-vertical/#comments</comments>
		<pubDate>Wed, 17 Jan 2007 23:50:22 +0000</pubDate>
		<dc:creator>Rogério Alencar Lino Filho</dc:creator>
				<category><![CDATA[CSS]]></category>
		<category><![CDATA[Tableless]]></category>
		<category><![CDATA[XHTML]]></category>
		<category><![CDATA[absolute]]></category>
		<category><![CDATA[centralizar]]></category>
		<category><![CDATA[firefox]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[horizontal]]></category>
		<category><![CDATA[ie]]></category>
		<category><![CDATA[opera]]></category>
		<category><![CDATA[table-cell]]></category>
		<category><![CDATA[vertical]]></category>
		<category><![CDATA[vertical-align]]></category>

		<guid isPermaLink="false">http://rogeriolino.wordpress.com/2007/01/17/css-centralizar-horizontal-e-vertical/</guid>
		<description><![CDATA[<p>Uma grande dúvida que sempre surge é como centralizar um elemento no HTML, tanto verticalmente quanto horizontalmente, usando CSS.</p> <p>Há duas maneiras de se fazer isso sem muito trabalho.</p> <p>A primeira consiste em definir a posição do objeto como absolute e suas posições top e left com 50% e tirando a diferença (subtraindo) da metade [...]]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Uma grande dúvida que sempre surge é como centralizar um elemento no HTML, tanto verticalmente quanto horizontalmente, usando CSS.</p>
<p>Há duas maneiras de se fazer isso sem muito trabalho.</p>
<p>A primeira consiste em definir a posição do objeto como <strong>absolute</strong> e suas posições <strong>top</strong> e<strong> left </strong>com <strong>50% </strong>e tirando a diferença (subtraindo) da metade de sua altura e metade de sua largura na margem. Por exemplo se um elemento tem <strong>500px</strong> de <strong>largura </strong>e <strong>400px</strong> de <strong>altura</strong> na margem vai ter um valor <strong>negativo</strong> (para <strong>top </strong>e <strong>left</strong>) igual a metade destes valores:</p>
<pre name="code" class="css">
#minhaDiv {
    width: 500px;
    height: 400px;
    top: 50%;
    left: 50%;
    margin-top: -200px;
    margin-left: -250px;
    position: absolute;
    border: 1px solid black;
}
</pre>
<p>Ou resumindo: <em><strong>margin: </strong>-200px auto auto -250px; </em></p>
<p>Pronto sua div vai ficar centralizada na janela. Mas temos um problema com isso.</p>
<p>Nesse caso sabemos o valor da altura do objeto, então tiramos a diferença na margem. Mas e se tivessemos um objeto em que sua altura pode variar (ou seja não sabemos o valor da altura) ?</p>
<p>Podemos solucionar isso usando o <strong>vertical-align</strong>, mas para ele funcionar temos que definir o<strong> display </strong>da div como <strong>table</strong>. A má notícia é que o nosso amigo <strong>IE</strong> não reconhece essa propriedade (e nem o valor table como display). A boa notícia que usando um hack para o IE dá pra acertar isso.</p>
<p>A estrutura para simular uma tabela fica assim:</p>
<pre name="code" class="html">
&lt;div id="tabela"&gt;
    &lt;div id="cell"&gt;
        &lt;div id="conteudo"&gt;
            &lt;p&gt;parágrafo&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
</pre>
<p>E definimos no CSS o display da div <strong>tabela</strong> como <strong>table</strong> e da div <strong>cell</strong> como <strong>table-cell</strong>. Mas antes temos que acertar o <strong>html, body</strong> e a <strong>tabela</strong> para <strong>100%</strong> (largura e altura).</p>
<pre name="code" class="css">
html, body {
    width: 100%;
    height: 100%;
    margin: 0px; /* retirando a margem padrão */
    padding: 0px; /* retirando o padding padrão */
}

#table {
    width: 100%;
    height: 100%;
    display: table;
}

#cell {
    display: table-cell;
}
</pre>
<p>Com as divs já funcionando como tabela vamos definir a <strong>vertical-align</strong> como <strong>middle</strong>, isso na div <strong>cell</strong>.</p>
<pre name="code" class="css">
#cell {
    vertical-align: middle;
    display: table-cell;
}
</pre>
<p>Falta agora setar a <strong>margin</strong> do conteudo como <strong>auto</strong>. E colocar um valor para largura, senão vai ficar 100%.</p>
<pre name="code" class="css">
#conteudo {
    width: 500px;
    margin: auto;
}
</pre>
<p>Pronto, a div já vai aparecer centralizada no browser. Mas ainda está faltando o nosso amigo <strong>IE</strong>.</p>
<p>A idéia é quase a mesma da primeira situação. Como antes do <strong>conteudo</strong> temos uma div (<strong>cell</strong>), a gente defini seu <strong>position </strong>como <strong>absolute</strong>, e <strong>top</strong> como <strong>50%</strong>. E na conteudo com <strong>position</strong> como <strong>relative</strong>, e <strong>top</strong> como <strong>-50%</strong>.</p>
<p>Lembrando que para não atrapalhar a definição correta, usaremos um hack que só influenciará no Internet Explorer.</p>
<p>Ficando o <strong>CSS final</strong> assim:</p>
<pre name="code" class="css">
html, body {
    width: 100%;
    height: 100%;
    margin: 0px;
    padding: 0px;
}

#table {
    width: 100%;
    height: 100%;
    display: table;
    background: #f1f1f1;
}

#cell {
    vertical-align: middle;
    display: table-cell;
    _position: absolute;
    _top: 50%;
}

#conteudo {
    width: 500px;
    margin: auto;
    padding: 20px;
    border: 1px solid black;
    _position: relative;
    _top: -50%;
}
</pre>
<p>E o <strong>HTML</strong>:</p>
<pre name="code" class="html">
&lt;div id="table"&gt;
    &lt;div id="cell"&gt;
        &lt;div id="conteudo"&gt;
            &lt;p&gt;Lorem ipsum dolor sit amet, consectetuer adipiscing elit.&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;
</pre>
<p>Mais <strong>sobre</strong>:</p>
<p><a href="http://www17.brinkster.com/chivalrous/tutoriais/centralizar.html" target="_blank">Exemplo com a primeira situação</a></p>
<p><a href="http://www.maujor.com/tutorial/centrar-vertical.php" title="Centralizar Vertical" target="_blank">Maujor &#8211; Centralizar Vertical </a></p>
<p><strong>[update testado="IE6, IE7, FIREFOX 2 e OPERA 9"]</strong></p>
<pre name="code" class="css">
html, body {
    width: 100%;
    height: 100%;
    padding: 0px;
    margin: 0px;
}

#table {
    width: 100%;
    height: 100%;
    position: static;
    display: table;
    *overflow: hidden; /* hack para o IE6 e IE7 */
    *position: relative; /* hack para o IE6 e IE7 */
}

#cell {
    vertical-align: middle;
    display: table-cell;
    position: static;
    *top: 50%; /* hack para o IE6 e IE7 */
    *position: absolute; /* hack para o IE6 e IE7 */
}

#conteudo {
    top: -50%;
    width: 500px;
    margin: auto;
    position: relative;
    background: red;
}
</pre>
<p><strong>[/update] </strong></p>
<div class="shr-publisher-66"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Frogeriolino.com%2F2007%2F01%2F17%2Fcss-centralizar-horizontal-e-vertical%2F' data-shr_title='CSS%3A+Centralizar+Horizontal+e+Vertical'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Frogeriolino.com%2F2007%2F01%2F17%2Fcss-centralizar-horizontal-e-vertical%2F' data-shr_title='CSS%3A+Centralizar+Horizontal+e+Vertical'></a><a class='shareaholic-tweetbutton' data-shr_count='horizontal' data-shr_href='http%3A%2F%2Frogeriolino.com%2F2007%2F01%2F17%2Fcss-centralizar-horizontal-e-vertical%2F' data-shr_title='CSS%3A+Centralizar+Horizontal+e+Vertical'></a></div><div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://rogeriolino.com/2007/01/17/css-centralizar-horizontal-e-vertical/feed/</wfw:commentRss>
		<slash:comments>42</slash:comments>
		</item>
	</channel>
</rss>

