如何使用 Grid 布局实现顶部对齐?

如何使用 grid 布局实现顶部对齐?

如何实现 grid 布局顶部对齐?

你在使用 grid 创建页面布局时遇到一个问题,即中间和右侧的内容没有顶部对齐,如下所示:

1
2 3
  4
  5 6
    7

你想要的结果是:

1 3 6
2 4 7
  5

代码如下:

<div class="fruit-grid">
    <div class="fruit">hello1</div>
    <div class="fruit">hello2</div>
    <div class="fruit">hello3</div>
    <div class="fruit">hello4</div>
    <div class="fruit">hello5</div>
    <div class="fruit">hello6</div>
    <div class="fruit">hello7</div>
</div>
.fruit-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  align-items: start;
}

.fruit {
  width: 100%;
  margin-bottom: 10px;
}

/* 显示在最左 */
.fruit:nth-child(1),
.fruit:nth-child(2) {
  grid-column: 1;
}

/* 显示在中间 */
.fruit:nth-child(3),
.fruit:nth-child(4),
.fruit:nth-child(5) {
  grid-column: 2;
}

/* 显示在最右 */
.fruit:nth-child(6),
.fruit:nth-child(7) {
  grid-column: 3;
}

解决这个问题的关键是添加 grid-auto-flow: dense 到 .fruit-grid。此属性使元素尽可能使用前面空的网格,而不是产生新的网格。

修改后的代码如下:

.fruit-grid {
  ...
  grid-auto-flow: dense;
}

加了这条语句后,你的布局将以你想要的形式正确对齐:

1 3 6
2 4 7
  5

以上就是如何使用 Grid 布局实现顶部对齐?的详细内容,更多请关注其它相关文章!