La solution est juste d'utiliser une marge plus simple auto, et donner à votre div une largeur et une hauteur. Cela fonctionne dans IE7, FF, Opera, Safari et 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 !! Désolé, je viens de remarquer que vous avez dit verticalement ... la marge "auto" par défaut pour le haut et le bas est zéro ... donc cela ne fera que le centrer horizontalement. La seule solution pour positionner verticalement et horizontalement est de balancer avec des marges négatives comme la réponse acceptée.
Pourquoi une marge négative ici? Merci! –
Parce qu'il compense la taille de la div. top et left set à 50% ferait le haut et à gauche de l'élément au milieu de la page, pas l'élément lui-même. Les marges négatives sont exactement la moitié de la taille de l'élément et constituent la différence de sorte que l'élément lui-même est centré, et pas seulement ses côtés supérieur et gauche. – tj111
Ew. Pourquoi auriez-vous besoin de positionner absolument? Utilisez le modèle de boîte comme il a été conçu. –