Cosme Faé - Design e desenvolvimento.

Alinhamento de site pelo CSS

Por Cosme Fa | 27 de Dezembro de 2005

pedidos de muitos (como se fosse verdade :P), resolvei fazer um artigo para ensinar como alinhar um site tanto na vertical quanto na horizontal com a ausncia de tabelas, utilizando CSS e XHTML, tal “proeza” complexa para alguns iniciantes.

Lembrando que s podemos efetuar tal alinhamento apenas quando o divisor estiver com um valor de largura e altura fixos, ou seja, o width e height tero que existir na diviso que quiser alinhar na horizontal e na vertical.

Vamos comear fazendo o nosso XHTML colocando a diviso que ser o conteudo, no nosso caso, o seletor principal:


<div id="conteudo">
</div>

O resto tudo CSS, vamos definir com que o body no tenha margem para no nos atrapalhar futuramente:


<style type="text/css">
body {
margin:0px;
}
</style>

Veja o primeiro exemplo!

Aps zerar a margem do corpo da pgina vamos fazer com que o nosso box aparea para podermos visualizar o alinhamento, ento no caso, criaremos o seletor #conteudo e…:


<style type="text/css">
body {
margin:0px;
}
#conteudo {
width:300px;
height:150px;
background-color:#ffffe1;
border:1px solid #999;
}
</style>

Veja o segundo exemplo!

Acima definimos a altura, largura, cor de fundo e borda. J que achamos onde est o nosso box, vamos finalmente alinhar o nosso amiguinho. Primeiramente comearemos com o alinhamento horizontal:


<style type="text/css">
body {
margin:0px;
}
#conteudo {
width:300px;
height:150px;
background-color:#ffffe1;
border:1px solid #999;
position:absolute;
left:50%;
margin-left:-150px;

}
</style>

Veja o terceiro exemplo!

Explicando… acima defini ele como posio absoluta ao user-agent, defini que tenha 50% de espaamento esquerda e uma margem esquerda o valor em negativo da largura dividido por 2 (dois).

Agora vamos ao alinhamento vertical no CSS. quase o mesmo procedimento do horizontal, porm, com ajustes no top do box.


<style type="text/css">
body {
margin:0px;
}
#conteudo {
width:300px;
height:150px;
background-color:#ffffe1;
border:1px solid #999;
position:absolute;
left:50%;
margin-left:-150px;
top:50%;
margin-top:-75px;

}
</style>

Chega t ser meio complicado, mas com o tempo fcil de gravar as propiedades para o alinhamento. Deve ter outra maneira de se alinhar, at a publicao deste artigo desconheo tal metodologia.

Veja aqui o resultado final.

Comentário Por Erik Marques — 27/12/2005 @ 3:14 pm

Show de bola, este artigo/tutorial..
Muito interessante mesmo..

Alm de ser muito utilizado pelas pessoas que fazem sites em webstandards.

Comentário Por Gustavo Paes — 27/12/2005 @ 4:43 pm

Ol. Muito bom…
Mas se for apenas para centralizar o Div utilizo:
margin: 0 auto;

Coloca no centro j :)

At

Comentário Por Cosme — 27/12/2005 @ 7:29 pm

Gustavo, eu no coloquei ali o margin:0px auto; porque no funcionaria o alinhamento vertical. :)

Comentário Por Gustavo — 28/12/2005 @ 3:04 pm

Sim… estava ciente disso Cosme… por isso utilizo apenas o “margin: 0px auto;” quando simplesmente quero centralizar, independente da resoluo.

At

Comentário Por Cleber Moreira da Costa — 31/03/2006 @ 12:05 pm

Bacana demais, mas s no etendo uma coisa, por que se coloca # na frente de um seletor

Comentário Por Cosme Fa Mendona — 31/03/2006 @ 12:54 pm

Ol, Cleber. O seletor da identificao definido como a #. usado quando queremos criar um seletor ID.

Falarei mais sobre o seletor ID nos meus prximos posts sobre CSS. Enquanto isso acompanhe a introduo ao CSS aqui no blog.

Comentário Por Ney Passos — 06/09/2007 @ 3:09 pm

Muito bom mesmo, existem muitos tpicos relacionados a alinhamento de camadas, mas neste pude perceber que em todos os navegadores tudo aceito sem erros. Valeu cara !

Assine o RSS Feed deste comentário. | TrackBack URI

Deixe um comentário

Me inscrever no Gravatar!

Conteúdo sob Licença Creative Commons Creative Commons License