Pourquoi les divs dans une mise en page grid
ne sont-ils pas alignés par défaut?
Comment puis-je les aligner?
<div class='dpNav' id='dpNav'> <div class='yearTitle' id='yearTitle'>2019</div> <div class='btnYear' id='btnYear'>♻</div> <div></div> <div class='monthTitle' id='monthTitle'>JAN</div> <div class='btnMonth' id='btnMonth'>♻</div> </div>
.dpNav{ width:50%; display:grid; grid-template-columns: repeat(5, 1fr); text-align:center; background:gold; }
3 Réponses :
ajoutez align-items:center;
<div class='dpNav' id='dpNav'> <div class='yearTitle' id='yearTitle'>2019</div> <div class='btnYear' id='btnYear'>♻</div> <div></div> <div class='monthTitle' id='monthTitle'>JAN</div> <div class='btnMonth' id='btnMonth'>♻</div> </div>
.dpNav{ width:50%; display:grid; grid-template-columns: repeat(5, 1fr); text-align:center; background:gold; align-items:center; }
hmm ... la marge supérieure des symboles est un pixel ou deux en plus.
<div class='dpNav' id='dpNav'> <div class='yearTitle text' id='yearTitle'>2019</div> <div class='btnYear' id='btnYear'>♻</div> <div></div> <div class='monthTitle text' id='monthTitle'>JAN</div> <div class='btnMonth' id='btnMonth'>♻</div> </div>
.dpNav{ width:50%; display:grid; grid-template-columns: repeat(5, 1fr); text-align:center; vertical-align: middle; background:gold; padding-bottom: 2px } .text { padding-top: 3px; }
si vous n'aimez pas mes ajustements au remplissage, vous pouvez également placer le contenu dans une plage et définir le CSS pour cela sur vertical-align: middle
. p>
Et quelqu'un pourrait-il expliquer - pourquoi la solution de Dogukan
n'est pas parfaite - pourquoi j'ai besoin de padding
et spans
supplémentaires - pourquoi les divs ne sont pas alignés par défaut?
il semble que le paramètre par défaut consiste à aligner le texte vers le bas plutôt que vers le centre. Les icônes de recyclage ont une hauteur légèrement différente du texte.
L'ajout de align-items: center
sur le conteneur parent permettra d'obtenir ce que vous recherchez. La raison pour laquelle il n'est pas défini par défaut est de donner à l'utilisateur le contrôle de son emplacement. CSS-Tricks présente une analyse très détaillée des différents façons d'aligner des éléments dans une grille.
<div class='dpNav' id='dpNav'> <div class='yearTitle' id='yearTitle'>2019</div> <div class='btnYear' id='btnYear'>♻</div> <div></div> <div class='monthTitle' id='monthTitle'>JAN</div> <div class='btnMonth' id='btnMonth'>♻</div> </div>
.dpNav{ width:50%; display:grid; align-items:center; grid-template-columns: repeat(5, 1fr); text-align:center; background:gold; }
merci pour l'excellent lien vers les astuces css
a voté pour cela parce que vous avez inclus un extrait de code fonctionnel :) voulez-vous mettre chaque div au-dessus de l'autre verticalement?
@YvonneAburrow, non je veux la même marge supérieure et inférieure sur chaque enfant de la grille.