This article is available in English too.
Per centrare verticalmente un contenuto, si deve usare il seguente codice CSS
div.vCenterWrapper
{
height: 100%;
display: table;
overflow: hidden;
}
div.vCenterContainer
{
display: table-cell;
vertical-align: middle;
}
div.vCenterContent
{
}
ed il seguente HTML
<div class="vCenterWrapper">
<div class="vCenterContainer">
<div class="vCenterContent">
...
</div>
</div>
</div>
Il codice CSS però purtroppo non funziona con le versioni precedenti la 8 di
Internet Explorer: bisogna aggiungere il seguente codice condizionale
<style type="text/css">
div.vCenterWrapper
{
position: relative;
}
div.vCenterContainer
{
position: absolute;
top: 50%;
}
div.vCenterContent
{
position: relative;
top: -50%;
}
</style>
Se si deve centrare anche orizzontalmente la tentazione sarebbe quella di
usare la centratura del testo:
<div class="vCenterWrapper" style="text-align:center;">
<div class="vCenterContainer">
<div class="vCenterContent">
...
</div>
</div>
</div>
Purtroppo questo sistema funziona con tutti tranne che con Internet Explorer
6 e Internet Explorer 7.
La maniera corretta di farlo, per centrare ad esempio in una colonna di 500
pixel, è di modificare gli stili:
div.vCenterWrapper
{
height: 100%;
width: 500px;
display: table;
overflow: hidden;
}
div.vCenterContainer
{
display: table-cell;
vertical-align: middle;
}
div.vCenterContent
{
width: 500px;
margin-left: auto;
margin-right: auto;
text-align:center;
}