body { text-align: center; }
#box {
width: 500px; /* or whatever your width is */
margin: 10px auto;
text-align: left;
}
ci-dessus centrerait votre boîte centrale horizontalement sur la page avec une marge de 10px en haut et en bas (de toute évidence que la marge supérieure/inférieure peut être modifiée à tout ce que vous voulez). Le 'text-align' sur le corps est nécessaire pour IE, qui, comme d'habitude, ne comprend pas tout à fait autrement. Vous devez ensuite aligner le texte à gauche sur votre boîte (à moins que vous ne vouliez que le texte soit centré) pour contrer le centre d'alignement de texte sur le corps.
Essayer de centrer verticalement est à peu près impossible en utilisant du CSS pur. Bien qu'il y ait un alignement vertical en CSS, cela ne fonctionne pas comme l'alignement vertical HTML dans les tables, donc en CSS 2 il n'y a pas d'alignement vertical intégré comme celui du HTML. Le problème est que vous faites face à une hauteur inconnue - même si vous connaissez la hauteur de votre boîte, la hauteur de la page est inconnue, ou plutôt qu'est-ce que vous essayez de réparer la boîte au centre de? La page? La fenêtre d'affichage? La zone d'écran visible va être différente pour tout le monde, en fonction de la résolution de l'écran, du navigateur, et tous les navigateurs interprètent la hauteur différemment.
Il existe plusieurs méthodes qui prétendent avoir résolu le problème, mais elles ne fonctionnent généralement pas de manière fiable dans tous les navigateurs. J'ai trouvé this one l'autre jour, ce qui ne semble pas mal, mais ça ne marche pas dans Google Chrome (fonctionne sous Firefox et Opera, mais je n'ai pas eu l'occasion de vérifier IE).Il y a une discussion intéressante sur le problème mais sur this thread sur Webmaster World qui résume les différentes méthodes et les avantages et les inconvénients d'entre eux et vaut bien un coup d'oeil.
Editer: La solution de Dav dans la première réponse fonctionne bien tant que vous (ou le visiteur du site) n'augmentez pas la taille de police ou la hauteur de ligne. Le conteneur sera centré, mais dès que la taille de la police est augmentée ou que du contenu est ajouté, le conteneur déborde.
+1. Bonne réponse! J'ai oublié le top dans le mien. J'ai supprimé ma réponse et j'appuie mon soutien sur le vôtre. – David
Vous ne devez pas ajouter 'position: absolute'? Pas sûr, c'est pourquoi je demande ... – Franz
Franz: Vous devez utiliser une certaine forme de position spécifiée; cependant, cela ne doit pas nécessairement être «absolu» (pourrait également, par exemple, être «fixe» ou «relatif» selon le contexte souhaité). – Amber