La soluzione più semplice è solo quello di utilizzare un margine di auto, e dare il vostro div una larghezza e altezza fissa. Questo funziona in IE7, FF, Opera, Safari e Chrome:
HTML:
<body>
<div class="centered">...</div>
</body>
CSS:
body { width: 100%; height: 100%; margin: 0px; padding: 0px; }
.centered
{
margin: auto;
width: 400px;
height: 200px;
}
EDIT !! Scusa, ho appena notato che hai detto verticalmente ... il margine "automatico" predefinito per la parte superiore e inferiore è zero ... quindi questo lo centrerà solo orizzontalmente. L'unica soluzione per posizionarsi verticalmente e orizzontalmente è di andare in giro con margini negativi come la risposta accettata.
Perché un margine negativo qui? Grazie! –
Perché compensa la dimensione del div. in alto e a sinistra il 50% renderebbe la parte superiore e sinistra dell'elemento al centro della pagina, non l'elemento stesso. I margini negativi sono esattamente la metà della dimensione dell'elemento e costituiscono la differenza in modo che l'elemento stesso sia centrato, non solo i suoi lati superiore e sinistro. – tj111
Ew. Perché dovresti posizionarti assolutamente? Usa il modello di scatola maledetta nel modo in cui è stato progettato. –