Je me suis creusé la tête pour créer un alignement vertical en css à l'aide des éléments suivants
.base{
background-color:green;
width:200px;
height:200px;
overflow:auto;
position:relative;
}
.vert-align{
padding-top:50%;
height:50%;
}
<!-- and used the following div structure. -->
<div class="base">
<div class="vert-align">
Content Here
</div>
</div>
Bien que cela semble fonctionner dans ce cas, j'ai été surpris de constater que lorsque j'augmentais ou diminuais la largeur de ma division de base, l'alignement vertical se brisait. Je m'attendais à ce que, lorsque je définissais la propriété padding-top, le padding soit calculé en pourcentage de la hauteur du conteneur parent, qui est la base dans notre cas, mais la valeur ci-dessus de 50 % est calculée en pourcentage de la largeur.
Existe-t-il un moyen de définir le rembourrage et/ou la marge en tant que pourcentage de la hauteur, sans recourir à JavaScript ?