J'ai passé de nombreuses questions ici, ainsi que de nombreux articles et documentation sur Bootstrap 4, mais je n'ai pas trouvé ce que je cherchais.
DEMO: https://jsfiddle.net/zxLLqsm0/
Je cherche à créer des boîtes ayant exactement la même hauteur pour toutes les colonnes et à centrer verticalement le texte à l'intérieur des boîtes. J'ai réussi à aligner le texte verticalement mais les hauteurs des cases sont différentes.
Voici mon HTML
<div class="container">
<div class="row align-items-center">
<div class="col-4">
<div class="box">
<h6>Title 1</h6>
<p>A small description</p>
</div>
</div>
<div class="col-4">
<div class="box">
<h6>Title 2</h6>
<p>A bigger description goes here</p>
</div>
</div>
<div class="col-4">
<div class="box">
<h6>Title 3</h6>
<p>A large description is placed here to make whatever changes we need.</p>
</div>
</div>
</div>
</div>
Et mon CSS:
.container {
margin-top: 15px;
}
.box {
background-color: grey;
padding: 15px;
}
En gros, cette la question a déjà été répondue .
Utilisez flexbox et justify-content-center
pour centrer la box
et h-100
pour height:100%
...
<div class="container">
<div class="row">
<div class="col-4">
<div class="box h-100 d-flex justify-content-center flex-column">
<h6>Title 1</h6>
<p>A small description</p>
</div>
</div>
<div class="col-4">
<div class="box h-100 d-flex justify-content-center flex-column">
<h6>Title 2</h6>
<p>A bigger description goes here</p>
</div>
</div>
<div class="col-4">
<div class="box h-100 d-flex justify-content-center flex-column">
<h6>Title 3</h6>
<p>A large description is placed here to make whatever changes we need.</p>
</div>
</div>
</div>
</div>
_ { https://www.codeply.com/go/VsyNMHZ8VG } _
Ou si vous souhaitez appliquer les mêmes modifications à .box
à la place d'utiliser les classes Bootstrap ...
https://jsfiddle.net/g38e9Lfm/
.box {
background-color: grey;
padding: 15px;
display: flex;
flex-direction: column;
justify-content: center;
height: 100%;
}
Vous pouvez ajouter des classes de démarrage standard et ne pas écrire de css supplémentaire
<div class="container">
<div class="row">
<div class="col-4">
<div class="box d-table h-100 w-100">
<div class="d-table-cell align-middle">
<h6>Title 1</h6>
<p>A small description</p>
</div>
</div>
</div>
<div class="col-4">
<div class="box d-table h-100 w-100">
<div class="d-table-cell align-middle">
<h6>Title 2</h6>
<p>A bigger description goes here</p>
</div>
</div>
</div>
<div class="col-4">
<div class="box d-table h-100 w-100">
<div class="d-table-cell align-middle">
<h6>Title 3</h6>
<p>A large description is placed here to make whatever changes we need.</p>
</div>
</div>
</div>
</div>
</div>
Changer la classe align-item-center
pour row-eq-height
Plus d'infos: http://getbootstrap.com.vn/examples/equal-height-columns/
Pour comprendre, vérifiez: https://css-tricks.com/snippets/css/a-guide-to-flexbox/
Et si vous voulez centrer verticalement, vous pouvez utiliser le code suivant:
.box {
background-color: grey;
padding: 15px;
height: 100%;
display: flex;
flex-wrap:wrap;
align-items: center;
align-content:center;
text-align:center;
justify-content: center;
}
Voici une approche, espérons que cela vous aidera.
.box{
background-color: grey;
padding: 15px;
height: 200px;
display:table;
}
Enveloppez votre partie de texte sous une nouvelle div avec class = "text", puis ajoutez css
.text{
display:table-cell;
vertical-align:middle;
}