CSS Grid使用auto-fill实现首行4项同时保持响应式布局的问题
问题排查与修改方案
现有代码问题
.Test-item中添加了float: left属性,Grid布局不需要浮动规则,浮动会干扰Grid的自动排列逻辑,是导致布局异常的核心原因之一。.Test-item固定设置了width: 100px,和Grid列宽115px不匹配,会导致单元格内容错位。
修改方法
- 删除
.Test-item中的float: left和固定width属性 - 如果你希望宽屏场景下最多一行放4个元素,避免宽度过大时一行出现更多元素,可给
.grid-container添加最大宽度限制,小屏场景下依然保留自适应缩小的能力。
修改后代码
CSS
.grid-container { display: grid !important; grid-gap: 10px !important; grid-template-columns: repeat(auto-fill, minmax(115px, 115px)) !important; margin: 10px 0 0 0; /* 宽屏最多一行4个,可根据需求调整或删除 */ max-width: calc(4 * 115px + 3 * 10px); } .grid-container p { font-size: 12px; color: #959595; font-weight: 630 !important; line-height: 14px; } .Test-item { background-color: blue; text-align: center; padding: 10px; border-radius: 10px; height: 85px !important; color: #959595 !important; font-weight: bold !important; line-height: 14px !important; cursor: pointer !important; margin: 0; }
HTML 无需修改
效果说明
- 页面宽度≥490px(4列宽度+3个间距)时,自动第一行排4个元素,剩余2个排在第二行,符合预期效果
- 页面宽度小于490px时,会自动调整为每行3个、2个、1个,完全保留自适应能力
内容的提问来源于stack exchange,提问作者KCode
相关产品推荐
相关产品推荐

