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
vous pouvez aligner verticalement votre conteneur en faisant fléchir le conteneur parent et en ajoutant
align-items:center
:Stylo mis à jour
la source
html, body {height:100%}
... en ajoutant ça a fait marcher! Merci!Suivre les cours de bootstrap 4 m'a aidé à résoudre ce problème
la source
Parce que rien de ce qui précède n'a fonctionné pour moi, j'ajoute une autre réponse.
Objectif: aligner verticalement et horizontalement un div sur une page en utilisant les classes flexbox bootstrap 4.
Étape 1: Réglez votre div externe à une hauteur de
100vh
. Cela définit la hauteur à 100% de la hauteur Veiwport. Si vous ne le faites pas, rien d'autre ne fonctionnera. Le définir à une hauteur de100%
est uniquement relatif au parent, donc si le parent n'est pas à la hauteur totale de la fenêtre, rien ne fonctionnera. Dans l'exemple ci-dessous, j'ai défini le corps sur 100vh.Étape 2: définissez le conteneur div comme conteneur flexbox avec la
d-flex
classe.Étape 3: Centrez div horizontalement avec la
justify-content-center
classe.Étape 4: Centrez div verticalement avec le
align-items-center
Étape 5: Exécutez la page, affichez votre div centré verticalement et horizontalement.
Notez qu'il n'y a pas de classe spéciale qui doit être définie sur le div centré lui-même (le div enfant)
la source
100vh
astuce m'a beaucoup aidé. Bootstrap fournit également lavh-100
classe pour cela.la source
J'ai essayé toutes les réponses ici, mais j'ai découvert ici la différence entre h-100 et vh-100 Voici ma solution:
la source
Dans Bootstrap 4 (beta), utilisez
align-middle
. Reportez-vous à la documentation Bootstrap 4 sur l'alignement vertical :la source
la source
Cette ligne est l'endroit où la magie opère
<div class="col-md-6 my-auto">
, lemy-auto
centre du contenu de la colonne. Cela fonctionne très bien avec des situations comme l'exemple de code ci-dessus où vous pourriez avoir une image de taille variable et avoir besoin que le texte dans la colonne à droite soit aligné avec.la source
Je l'ai fait de cette façon avec Bootstrap
4.3.1
:la source
la source
flex-grow-1
classe à la carte l'empêche de rétrécir.Alignement vertical En utilisant ce bootstrap 4 classes:
par exemple:
et si vous voulez que le parent soit cercle:
dont deux classes css personnalisées sont les suivantes:
L'utilisation finale peut être comme par exemple:
la source
Placez votre contenu dans un conteneur flexbox 100% haut, c'est-à-dire h-100. Justifiez ensuite le contenu de manière centralisée à l'aide de la classe centre de contenu de justification .
la source
utiliser
.my-auto
(bootsrap4) la classe css sur votre divla source
Dans Bootstrap 4.1.3:
Cela a fonctionné pour moi lorsque j'essayais de centrer un badge bootstrap à l'intérieur d'un à
container > row > column
côté d'unh1
titre.Ce qui a fonctionné était un simple css:
ou
la source