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:
<div id="limites">
<div id="conteudo">
<h1>Alinhamento vertical e horizontal com <abbr title="eXtensible Hypertext Markup Language">XHTML</abbr> e <abbr title="Cascading Style Sheets">CSS</abbr></h1>
<p>Olá mundo!</p>
</div>
</div>
Nesse exemplo o elemento que precisa posicionar no meio da tela será a div#limites.
Como padrão de documento base para CSS coloque o seguinte reset:
* { margin: 0; padding: 0; z-index: 1; }
E agora para começar a posicionar a div#limites no meio da tela declare o seguinte código:
#limites { position: absolute; top: 50%; left: 50%; width: 680px; height: 400px; background-color: #eee; }
Isso vai fazer que a div#limites tenha os seguintes estilos:
- posição absoluta
- canto superior esquerdo a uma distância igual a 50% do tamanho da tela
- largura e altura
- fundo cinza.
Com isso o resultado será meio estranho visualmente, mas esta tudo ok.
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.
Puxe então a div#limites para cima ↑ com um valor igual à metade da sua altura ( margin-top: -200px; ) e o mesmo deve ser feito para o lado esquerdo ←, puxe para esquerda à metade da sua largura ( margin-left: -340px; ).
Com isso é possível posicionar a div#limites exatamente no meio da tela.
Veja o arquivo pronto do exemplo sobre alinhamento vertical e horizontal deste post.




