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;
}