html - 左对齐中心对齐 flex 盒的最后一行

标签 html css flexbox

我有一个 flex 盒。它的内容是 NxN 正方形。我希望容器在给定显示宽度的情况下容纳尽可能多的这些正方形。我希望 Flexbox 在页面上居中对齐。

但是问题出在我使用时

justify-content: center
图片: justify-content: center

那么最后一行不左对齐。但是如果我更改为

justify-content: left
图片: justify-content: left

那么整个容器不再在页面上居中对齐显示。我可以以某种方式实现两者的混合吗?在这个例子中,我将集中对齐 5 个元素,但最后一行将与前一行中的第一个元素对齐?

最小重现:

<style>
  div { display: flex; flex-wrap: wrap; justify-content: center; }
  i { display: block; width: 300px; height: 300px; background: black; margin: 10px; }
</style>
<div>
  <i></i> <i></i> <i></i> <i></i> <i></i>
  <i></i> <i></i> <i></i>
</div>

最佳答案

您正在构建的布局是一个非常标准的网格。 CSS 网格将比 Flexbox 更适合。

通过对列使用自动调整并将每个列设置为固定大小,它将在容器内容纳尽可能多的列。 justify-content: center 将使您的列居中,但内容仍会从左到右跨过这些列。

示例:

div {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(auto-fit, 160px);
    justify-content: center;
}

span {
    background: red;
    display: block;
    height: 160px;
}
<div>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
    <span></span>
</div>

关于html - 左对齐中心对齐 flex 盒的最后一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66733428/

相关文章:

html - 通过css设置打印机纸张大小

html - 如何水平滚动我的 HTML 表格?

html - 为什么 Flexbox 不垂直居中?

css - Flexbox:如果其他列不能收缩,为什么内容会拉伸(stretch)列?

html - 网站上表格列的重新排序

javascript - 如何在移动设备上禁用 reCAPTCHA 的预测文本?

html - Web 应用程序和渲染

css - 在 IceFaces menuBar 中单击时更改 menuItem 的样式

css - Django 网站的 Bootstrap 网格

php - 英雄的 Laravel CSS 背景图像