css - 当没有足够的项目来填充一行时如何在网格中居中列
问题描述
我正在尝试将网格中的某些列居中对齐,但前提是容器中没有足够的项目导致它包含多于一行。当包裹在物品中的踢脚时,应与左侧对齐。网格中的项目数是动态的,宽度以百分比形式指定。
我目前正在使用 flexbox,但也看过 css-grid。我知道如果项目数少于一行中的列数,我可以通过向容器添加另一个类来轻松实现这一点,但如果可能的话,我正在寻找仅 CSS 的解决方案。我一直在寻找一种方法来定位任何被包装到另一行并覆盖 justify-content 的元素,但我认为我可能以错误的方式处理这个问题。似乎它应该很容易!
.grid {
display: flex;
flex-wrap: wrap;
justify-content: center;
background: pink;
}
.column {
width: 25%;
height: 100px;
background: green;
border: 1px solid black;
box-sizing: border-box;
}
.justify-left {
justify-content: left;
}
<h2>How it looks with less than 4 items</h2>
<div class="grid">
<div class="column"></div>
<div class="column"></div>
<div class="column"></div>
</div>
<h2>How it looks with more than 4 items</h2>
<div class="grid">
<div class="column"></div>
<div class="column"></div>
<div class="column"></div>
<div class="column"></div>
<div class="column"></div>
</div>
<h2>How it should look with more than 4 items</h2>
<div class="grid justify-left">
<div class="column"></div>
<div class="column"></div>
<div class="column"></div>
<div class="column"></div>
<div class="column"></div>
</div>
解决方案
推荐阅读
- azure - 我可以获取“正在更新”的 Service Fabric 群集的状态/信息吗?
- android - android布局中的多屏幕支持
- azure-devops - 使用权限/其他功能来限制 Azure DevOps 中的部署
- shell - 如何在 shell 中一次删除目录及其后代?
- json - 我尝试将此 cURL 代码转换为 Retrofit2 的代码,但我不能
- eclipse - 无法添加 JUnit 5 测试用例
- c# - C# Linq 数据表 groupby 日期时间月
- angular - Angular 6:将急切加载转换为延迟加载
- angular - Angular:如何在多行上复制 templateRef?
- xcode - 什么是 .dat.nosyncb77b.* 文件以及如何删除它们?