这两个css的网格中心对齐内框有什么区别

bd1hkmkf  于 2023-06-25  发布在  其他
关注(0)|答案(1)|浏览(169)

我已经写了两个代码片段使用CSS网格中心对齐内部框,但不能够理解其中的区别。
我知道我们有其他的方法可以做,但我很好奇知道这两者之间的确切区别。
哪一个更合适/正确,为什么

第一次

justify-content: center;
align-content: center;

第二次

justify-items: center;
align-items: center;

HTML

<div class="box1">
  <div>Box1</div>
</div>
<div class="box2">
 <div>Box2</div>
</div>

CSS

.box1, .box2 {
  border: 5px solid lightgreen;
  height: 250px;
  width: 250px;
  display: grid;
  justify-content: center;
  align-content: center;
  margin: 5px;
}
.box2 {
  display: grid;
  justify-items: center;
  align-items: center;
}
.box1>div, .box2>div {
  background: lightgreen;
  padding: 20px;
}

输出x1c 0d1x

lqfhib0f

lqfhib0f1#

在您的示例中,没有真实的的区别,因为每个示例中只有一个网格项。但这些实际上有不同的目的。
justify-contentalign-content用于将网格容器的整个内容作为一个组对齐。因此,在下面的第一个示例中,所有四个框都位于黑色容器的中心。
justify-itemsalign-items用于在它们各自的网格单元内对齐各自的网格项。因此,在下面的第二个示例中,每个黄色正方形都位于容器的四分之一范围内。
当容器中只有一个div时,两组属性的结果是相同的,但原因不同。

article.content {
  grid-template-columns: 100px 100px;
  grid-template-rows: 100px 100px;
  justify-content: center;
  align-content: center;
}

article.items {
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  justify-items: center;
  align-items: center;
}

article {
  display: grid;
  background: black;
  width: 400px;
  height: 400px;
  gap: 20px;
}

div {
  background: yellow;
  width: 100px;
  height: 100px;
}
<h1>justify-content and justify-items</h1>

<article class="content">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</article>

<h1>justify-items and align-items</h1>

<article class="items">
  <div></div>
  <div></div>
  <div></div>
  <div></div>
</article>

相关问题