You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用Flex Box让CSS Grid填充行与行之间的空白区域

问题原因

你为.Playlists设置了height: 100%的明确容器高度,Grid布局默认align-content属性值为stretch,会让所有网格行平分拉伸填满整个容器的高度,所以当项目数量较少时,行与行之间就会出现大面积空白。你之前调整grid-auto-flow没有生效,是因为这个属性只控制网格自动排列的方向和空白单元格填充规则,和行间距拉伸无关。

解决方案

在原有样式基础上新增align-content: start;属性即可,该属性会让所有网格行靠容器顶部排列,多余的空白统一留在容器底部,不会再出现行间距异常拉伸的问题,同时完全保留Grid的换行布局规则,不需要改用Flex。

修改后的完整代码如下:

.Playlists {
    margin: 0px;
    padding: 0px;
    list-style: none;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    grid-auto-flow: row dense;
    height: 100%;
    overflow-y: scroll;
    align-content: start; /* 新增这一行 */
}

如果需要更精准控制每行的高度,也可以额外搭配grid-auto-rows属性设置固定值,比如grid-auto-rows: 160px;,可根据你的项目实际尺寸调整参数。

内容的提问来源于stack exchange,提问作者Josh Lee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 20:06:04