css - How to specify the CSS grid columns for the least unused space
问题描述
Assuming I have a number of items, arranged in grid cells of equal width, how do I specify the columns so that they don't leave extra unused space?
The original grid (with space waste on the right) example:
const COLOURS = [
'navy',
'green',
'maroon',
'#80B0BF',
'#006241',
'#573862'
]
window.addEventListener('load', () => {
const grid = document.getElementById('grid')
for (let i = 0; i < 20; i++) {
let el = document.createElement('div')
el.classList.add('element')
el.style.backgroundColor = _.sample(COLOURS)
grid.appendChild(el)
}
})
.grid {
display: grid;
width: 400px;
border: 3px solid black;
grid-template-columns: repeat(auto-fit, 100px);
grid-gap: 10px;
}
.element {
padding: 1em;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
<div class="grid" id="grid">
</div>
解决方案
用于minmax(<constant value>, 1fr)
自动扩展行。
const COLOURS = [
'navy',
'green',
'maroon',
'#80B0BF',
'#006241',
'#573862'
]
window.addEventListener('load', () => {
const grid = document.getElementById('grid')
for (let i = 0; i < 20; i++) {
let el = document.createElement('div')
el.classList.add('element')
el.style.backgroundColor = _.sample(COLOURS)
grid.appendChild(el)
}
})
.grid {
display: grid;
width: 400px;
border: 3px solid black;
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
grid-gap: 10px;
}
.element {
padding: 1em;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
<div class="grid" id="grid">
</div>
推荐阅读
- google-calendar-api - 创建 Google 定期事件时让 EXDATE 工作
- nestjs - 将 webpack 与 hotreload 连接后,nestjs 渲染错误
- r - Markdown 在第一个 Chunk 后未编译(到达 html 抓取时停止)
- python - 如何在 django 中编写带有分页的单元测试
- node.js - amqp client doesn't show that RabbitMQ server connection is blocked
- reactjs - Material UI 主题全局 Dense 设置
- azure-data-factory - 在数据工厂中参数化多个 CSV 文件的负载的最佳实践
- google-apps-script - GmailApp(Google Apps 脚本)将内联图像显示为附件
- python - 修改绘图轴,使其刻度标签的顺序和它们各自的点相应改变 - 不修改数据本身
- apache-nifi - 在目标表中使用具有不同列名的 PutDatabaseRecord 迁移表