如何在CSS网格的最后一行居中放置元素?

fightstarr20:

我正在使用CSS网格来布局这样的某些项目...

#container {
  display: grid;
  grid-template-columns: 16.666% 16.666% 16.666% 16.666% 16.666% 16.666%;
}

.item {
  background: teal;
  color: white;
  padding: 20px;
  margin: 10px;
}
<div id="container">
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
</div>

如何使最后一行居中而不是左对齐?我不能保证项目的数量,因此想使布局适合任何数量的项目。

这是我应该使用flexbox代替的东西吗?还是CSS网格适合使用?

迈克尔·本杰明:

CSS Grid不适合在整行中对齐,因为纵横交错的轨道阻碍了这种方式。以下是详细说明:

或者,将flexbox与一起使用justify-content: center

这会将所有项目打包在该行的水平中心。然后,您的利润将它们推开。

在完全填充的行上,justify-content将没有任何作用,因为没有可用空间来工作

在具有可用空间的行(在您的情况下,仅最后一行)中,项目居中。

#container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.item {
  flex: 0 0 calc(16.66% - 20px);
  background: teal;
  color: white;
  padding: 20px;
  margin: 10px;
}

* {
  box-sizing: border-box;
}
<div id="container">
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
  <div class="item">Item</div>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在屏幕上居中放置元素?

如何在布尔玛中垂直居中放置元素?

如何在CSS的两列之间居中放置图像?

如何在SVG g元素内居中放置文本?

在将包含输入字段的DIV居中放置时,如何将输入字段保持在一行上?

如何在ColumnLayout中居中放置元素

在CSS网格中放置伪元素

如何在网格单元内垂直居中放置元素?

如何在CSS网格中居中放置图像?

如何使用网格居中放置Button?

如何在容器中居中放置最后一个弹性物品?

如何使用Keras Tensorflow在张量中放置最后一行和最后一个col

如何在CSS Grid中垂直居中放置内容?

如何使用CSS网格将第一列的第一列居中并在第二行中放置其他三列?

如何在Shiny中将CSS元素居中放置在另一个元素之下

在CSS的一行的开头使用网格时将第n个元素居中

如何在div元素内居中放置文本?

如何在CSS中居中放置元素?

如何在HTML / CSS中居中放置一组图像?

如何在同一行中放置多个跨度?

如何在引导网格内居中放置文本

如何在CSS的li中水平居中放置div

使用列表时如何在一行中放置几个元素?

如何在CSS形状中居中放置图标?

如何在另一个元素和容器的边缘之间居中放置一个元素

如何在div内水平居中放置网格块?

如何在div内居中放置CSS精灵?

如何在 CSS 的同一行中放置文本和矩形(带有一些文本)?

Xamarin.Forms:如何将多标签居中放置在一行中?