Comment puis-je aligner tout le corps du html au centre ?
C'est une réponse si simple mais la plus propre et la plus efficace pour centrer la balise body au milieu de la page.
Comment puis-je aligner tout le corps du html au centre ?
Je suis tombé sur ce vieux post, et bien que je sois sûr que l'utilisateur01 ait depuis longtemps trouvé sa réponse, j'ai trouvé que les réponses actuelles ne fonctionnaient pas tout à fait. Après avoir joué un peu en utilisant les informations fournies par les autres, j'ai trouvé une solution qui a fonctionné dans IE, Firefox et Chrome. En CSS :
html, body {
height: 100%;
}
html {
display: table;
margin: auto;
}
body {
display: table-cell;
vertical-align: middle;
}
C'est presque identique à la réponse de abernier, mais j'ai trouvé que inclure la largeur briserait le centrage, tout comme omettre la marge automatique. J'espère que quiconque tombera sur ce fil trouvera ma réponse utile.
Note : Omettre html, body { height: 100%; }
pour centrer uniquement horizontalement.
C'est une réponse si simple mais la plus propre et la plus efficace pour centrer la balise body au milieu de la page.
Bien que cela soit court, cela ne fonctionne pas non plus dans IE, Edge Legacy, Edge, Chrome, ni Firefox. Le problème est que la marge auto ne fonctionne que lorsque la largeur de l'élément est inférieure à celle du parent. Comme 'body' est par défaut à 100%, il n'y a pas de place sur les bords pour insérer automatiquement des marges. Vous pouvez utiliser body { margin:0 auto; max-width: 700px; }
et alors votre corps fera jusqu'à 700px et permettra un retour à la ligne sur les appareils plus petits.
Si j'ai une chose que j'adore partager en ce qui concerne le CSS, c'est MA MANIÈRE PRÉFÉRÉE DE CENTRER LES CHOSES LE LONG DES DEUX AXES !!!
Avantages de cette méthode :
Je fais toujours cela en utilisant 2 classes : Une pour spécifier l'élément parent, dont le contenu sera centré (.centered-wrapper
), et la 2ème pour spécifier quel enfant du parent est centré (.centered-content
). Cette 2ème classe est utile dans le cas où le parent a plusieurs enfants, mais un seul doit être centré). Dans ce cas, body
sera le .centered-wrapper
, et un div
interne sera .centered-content
.
...
...
L'idée pour centrer maintenant sera de faire de .centered-content
un inline-block
. Cela permettra de faciliter le centrage horizontal, à travers text-align: center;
, et permet également le centrage vertical comme vous pourrez le constater.
.centered-wrapper {
position: relative;
text-align: center;
}
.centered-wrapper:before {
content: "";
position: relative;
display: inline-block;
width: 0; height: 100%;
vertical-align: middle;
}
.centered-content {
display: inline-block;
vertical-align: middle;
}
Cela vous donne 2 classes vraiment réutilisables pour centrer n'importe quel enfant à l'intérieur de n'importe quel parent ! Il suffit d'ajouter les classes .centered-wrapper
et .centered-content
.
Alors, qu'est-ce que cet élément :before
? Il facilite vertical-align: middle;
et est nécessaire car l'alignement vertical n'est pas relatif à la hauteur du parent - l'alignement vertical est relatif à la hauteur du frère le plus grand !!!. Par conséquent, en veillant à ce qu'il y ait un frère dont la hauteur est la hauteur du parent (hauteur de 100 %, largeur de 0 pour le rendre invisible), nous savons que l'alignement vertical sera par rapport à la hauteur du parent.
Une dernière chose : Vous devez vous assurer que vos balises html
et body
sont de la taille de la fenêtre pour que le centrage sur eux soit le même que le centrage sur le navigateur !
html, body {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
}
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
5 votes
Horizontal, vertical or both?
0 votes
Est-ce que w3 a des moyens faciles de le faire ?