J'essaie de centrer mon conteneur au milieu de la page à l'aide de Bootstrap 4.
vous pouvez aligner verticalement votre conteneur en rendant le conteneur parent flexible et en ajoutant align-items:center
:
body {
display:flex;
align-items:center;
}
Suite aux 4 cours de bootstrap m'a aidé à résoudre ce problème
<div class="col text-center justify-content-center align-self-center">
<img width=3rem src=".." alt="...">
</div>
.jumbotron {
position: relative;
top: 50%;
transform: translateY(-50%);
}
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 une div sur une page à l’aide des classes bootstrap 4 flexbox.
Étape 1: Définissez votre division la plus externe sur une hauteur de 100vh
. Ceci règle la hauteur à 100% de la hauteur de Veiwport. Si vous ne faites pas cela, rien d'autre ne fonctionnera. La définition de 100%
n’est relative que par rapport au parent. Par conséquent, si le parent n’est pas à la hauteur de la fenêtre, rien ne fonctionnera. Dans l'exemple ci-dessous, je règle le corps sur 100vh.
Étape 2: définissez le conteneur div comme conteneur flexbox avec la classe d-flex
.
Étape 3: Centre div horizontalement avec la classe justify-content-center
.
Étape 4: Centrez la division verticalement avec le align-items-center
Étape 5: Exécuter 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 la div centrée elle-même (la div enfant)
<body style="background-color:#f2f2f2; height:100vh;">
<div class="h-100 d-flex justify-content-center align-items-center">
<div style="height:600px; background-color:white; width:600px;">
</div>
</div>
</body>
Dans Bootstrap 4 (beta), utilisez align-middle
. Reportez-vous à Documentation Bootstrap 4 sur l'alignement vertical :
Modifiez l'alignement des éléments avec vertical-alignement utilitaires. Veuillez noter que l'alignement vertical affecte uniquement inline, Eléments inline-block, inline-table et table.
Choisissez parmi
.align-baseline
,.align-top
,.align-middle
,.align-bottom
,.align-text-bottom
et.align-text-top
si nécessaire.
<!DOCTYPE html>
<html lang="en">
<head>
<title>Bootstrap Example</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row align-items-center justify-content-center" style="height:100vh;">
<div>Center Div Here</div>
</div>
</div>
</body>
</html>
Je l’ai fait de cette façon avec Bootstrap 4.3.1
:
<div class="d-flex vh-100">
<div class="d-flex w-100 justify-content-center align-self-center">
I'm in the middle
</div>
</div>
J'ai essayé toutes les réponses, mais la différence entre h-100 et vh-100 Voici ma solution:
<div className='container vh-100 d-flex align-items-center col justify-content-center'>
<div className="">
...
</div>
</div >
Dans Bootstrap 4.1.3:
Cela a fonctionné pour moi lorsque j'essayais de centrer un badge d'amorce dans un container > row > column
à côté d'un titre h1
.
Quel était le travail était simple css:
.my-valign-center {
vertical-align: 50%;
}
ou
<span class="badge badge-pill" style="vertical-align: 50%;">My Badge</span>
<div class="col-lg-5 col-sm-5 offset-1 d-flex">
<div class="offer-txt justify-content-center align-self-center">
<span class="inner-title">Our Offer</span>
<h2 class="section-title">Today’s Special </h2>
<p>One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into vermin. He lay on his armour-like back, and if he lifted his head a little he could see his brown belly.</p>
</div>
</div>