J'ai une grille avec trois éléments, et les deux derniers sont "espacés vers le haut" pour une raison quelconque.
<div class="item"> <p class="item-name">1 Arrow</p> <a class="item-edit" href="#">Edit</a> <a class="item-remove" href="#">Remove</a> </div>
.item { display: grid; grid-template-columns: 50% 25% 25%; grid-template-areas: "name edit remove" } .item-name { grid-area: name; } .item-edit { grid-area: edit; } .item-remove { grid-area: remove; }
Les "Modifier" et "Supprimer" sont espacés vers le haut au lieu d'être sur la même ligne que la "1 Flèche".
3 Réponses :
vous pouvez utiliser align-items: center;
<div class="item"> <p class="item-name">1 Arrow</p> <a class="item-edit" href="#">Edit</a> <a class="item-remove" href="#">Remove</a> </div>
.item { display: grid; grid-template-columns: 50% 25% 25%; grid-template-areas: "name edit remove"; } .item * {border: solid 1px orange; } /* added only for demonstration purpose*/ .item-name { grid-area: name; } .item-edit { grid-area: edit; } .item-remove { grid-area: remove; }
si vous ne l'utilisez pas (comme ce que vous aviez) avec la bordure orange, cela ressemble à ceci:
<div class="item"> <p class="item-name">1 Arrow</p> <a class="item-edit" href="#">Edit</a> <a class="item-remove" href="#">Remove</a> </div>
.item { display: grid; grid-template-columns: 50% 25% 25%; grid-template-areas: "name edit remove"; align-items: center; } .item * {border: solid 1px orange; } /* added only for demonstration purpose*/ .item-name { grid-area: name; } .item-edit { grid-area: edit; } .item-remove { grid-area: remove; }
Comme @ j08691 l'a déjà dit, c'est à cause de votre
-element a> qui est livré avec un défaut marge .
Vous pouvez facilement le «réparer» en ajoutant
margin: 0;
à votre classe.item-name
comme je l'ai fait ci-dessous. Ou vous pouvez également mettre vos liens dans un paragraphe. Comme
<div class="item"> <p class="item-name">1 Arrow</p> <a class="item-edit" href="#">Edit</a> <a class="item-remove" href="#">Remove</a> </div>.item { display: grid; grid-template-columns: 50% 25% 25%; grid-template-areas: "name edit remove" } .item-name { grid-area: name; margin: 0; } .item-edit { grid-area: edit; } .item-remove { grid-area: remove; }
<div class="item"> <label class="item-name">1 Arrow</label> <a class="item-edit" href="#">Edit</a> <a class="item-remove" href="#">Remove</a> </div>
.item { display: grid; grid-template-columns: 50% 25% 25%; grid-template-areas: "name edit remove" } .item-name { grid-area: name; } .item-edit { grid-area: edit; } .item-remove { grid-area: remove; }
Essayez la balise d'étiquette
C'est parce que vous avez un paragraphe avec une marge par défaut. Retirez-le et ils s'alignent