Самое простое решение - просто использовать автоматическое поле и дать вашему div фиксированную ширину и высоту. Это будет работать в IE7, FF, Opera, Safari и 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;
}
* +1008 * EDIT !! Извините, я только что заметил, что вы сказали вертикально ... по умолчанию "auto" поле для верха и низа равно нулю ... так что это будет центрировать его только горизонтально. Единственное решение для позиционирования по вертикали и горизонтали - это обойти отрицательные поля, как принятый ответ.