使用 CSS Grid 布局时如何让内容顶部对齐?

使用 css grid 布局时如何让内容顶部对齐?

如何解决使用 css grid 布局时内容不顶部对齐的问题?

问题描述:

在使用 css grid 布局创建一个三栏布局时,遇到中间和右侧内容不顶部对齐的情况,如下所示:

1
2 3
  4
  5 6
    7

而期望的显示形式应该是:

1 3 6
2 4 7
  5

原因分析:

原先的 css 代码中缺少了 grid-auto-flow: dense 属性。

解决方案:

在 fruit-grid 类上添加 grid-auto-flow: dense 属性,可以解决此问题。

.fruit-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  align-items: start;
  grid-auto-flow: dense;
}

grid-auto-flow: dense 属性可让元素尽可能地使用前面空的网格,而不是创建新的网格行或列。从而实现顶部对齐。

修正后的代码:

<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;
  grid-auto-flow: dense;
}

.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;
}

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