我正在使用 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 网格是否适合使用?
原文由 fightstarr20 发布,翻译遵循 CC BY-SA 4.0 许可协议
CSS Grid 不适合整行对齐,因为交叉轨道会挡路。这里有一个详细的解释:
作为替代方案,将 flexbox 与
justify-content: center
一起使用。这会将所有项目打包在行的水平中心。然后你的边距将它们推开。
在完全填充的行上,
justify-content
将无效,因为 没有可用空间供其工作。在有可用空间的行上(在您的情况下,只有最后一行),项目居中。