Important! Le centre vertical est relatif à la hauteur du parent
Si le parent de l'élément que vous essayez de centrer n'a pas de hauteur définie
, aucune des solutions de centrage vertical ne fonctionnera!
Maintenant, sur le centrage vertical dans Bootstrap 4 ...
Vous pouvez utiliser les nouveaux utilitaires flexbox et taille pour créer la container
pleine hauteur et display: flex
. Ces options ne nécessitent pas de CSS supplémentaire (sauf que la hauteur du conteneur (ie: html, body) doit être de 100% ).
Option 1 align-self-center
sur Flexbox enfant
<div class="container d-flex h-100">
<div class="row justify-content-center align-self-center">
I'm vertically centered
</div>
</div>
https://www.codeply.com/go/fFqaDe5Oey
Option 2 align-items-center
sur le parent Flexbox ( .row
est display:flex; flex-direction:row
)
<div class="container h-100">
<div class="row align-items-center h-100">
<div class="col-6 mx-auto">
<div class="jumbotron">
I'm vertically centered
</div>
</div>
</div>
</div>
https://www.codeply.com/go/BumdFnmLuk
Option 3 justify-content-center
sur le parent Flexbox ( .card
est display:flex;flex-direction:column
)
<div class="container h-100">
<div class="row align-items-center h-100">
<div class="col-6 mx-auto">
<div class="card h-100 border-primary justify-content-center">
<div>
...card content...
</div>
</div>
</div>
</div>
</div>
https://www.codeply.com/go/3gySSEe7nd
En savoir plus sur le centrage vertical Bootstrap 4
Maintenant que Bootstrap 4 propose Flexbox et d' autres utilitaires , il existe de nombreuses approches pour l'alignement vertical. http://www.codeply.com/go/WG15ZWC4lf
1 - Centre vertical à l'aide des marges automatiques:
Une autre façon de centrer verticalement est d'utiliser my-auto
. Cela centrera l'élément dans son conteneur. Par exemple, h-100
rend la ligne pleine hauteur et my-auto
centre verticalement la col-sm-12
colonne.
<div class="row h-100">
<div class="col-sm-12 my-auto">
<div class="card card-block w-25">Card</div>
</div>
</div>
Centre vertical à l'aide de la démonstration des marges automatiques
my-auto
représente les marges sur l'axe vertical y et équivaut à:
margin-top: auto;
margin-bottom: auto;
2 - Centre vertical avec Flexbox:
Puisque Bootstrap 4 .row
est maintenant, display:flex
vous pouvez simplement l'utiliser align-self-center
sur n'importe quelle colonne pour le centrer verticalement ...
<div class="row">
<div class="col-6 align-self-center">
<div class="card card-block">
Center
</div>
</div>
<div class="col-6">
<div class="card card-inverse card-danger">
Taller
</div>
</div>
</div>
ou, utilisez align-items-center
sur l'ensemble .row
pour aligner verticalement au centre tout col-*
dans la rangée ...
<div class="row align-items-center">
<div class="col-6">
<div class="card card-block">
Center
</div>
</div>
<div class="col-6">
<div class="card card-inverse card-danger">
Taller
</div>
</div>
</div>
Démonstration de colonnes verticales de différentes hauteurs
Voir ce Q / A au centre, mais maintenir une hauteur égale
3 - Centre vertical utilisant des outils d'affichage:
Bootstrap 4 a utils d'affichage qui peuvent être utilisés pour display:table
, display:table-cell
, display:inline
, etc .. Ils peuvent être utilisés avec les utils d'alignement vertical à roues alignées align, inline-block ou des éléments de cellules de tableau.
<div class="row h-50">
<div class="col-sm-12 h-100 d-table">
<div class="card card-block d-table-cell align-middle">
I am centered vertically
</div>
</div>
</div>
Vertical Center Using Display Utils Demo
Plus d'exemples
Image du <div>
centre vertical dans le centre vertical .row dans .container
Centre vertical et bas dans le <div>
centre vertical enfant à l'intérieur du parent
Centre vertical plein écran jumbotron
Important! Ai-je mentionné la taille?
N'oubliez pas que le centrage vertical est relatif à la hauteur de l' élément parent . Si vous voulez vous centrer sur toute la page, dans la plupart des cas, cela devrait être votre CSS ...
body,html {
height: 100%;
}
Ou utilisez min-height: 100vh
( min-vh-100
dans Bootstrap 4.1+) sur le parent / conteneur. Si vous souhaitez centrer un élément enfant à l'intérieur du parent. Le parent doit avoir une hauteur définie .
Voir aussi:
Alignement vertical dans bootstrap 4
Bootstrap 4 Alignement vertical et horizontal central