如何设置CSS容器内单行最多可放置的div元素数量
解决方案
你这个场景用CSS Grid布局适配性更强,能直接指定单行固定元素数量,也不会出现多余空白,修改方案如下:
- 先修正HTML里重复ID的问题:ID为唯一标识,不能多个元素共用同一个
#slot-1,改成类名.slot更合理 - 容器改用Grid布局,直接指定每行列数,用gap控制元素间距,不需要子元素额外加边距
修改后的HTML代码
<div id="container"> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> <div class="slot"></div> </div>
修改后的CSS代码
#container { display: grid; /* 这里repeat的第一个参数就是单行最多放置的元素数量,可按需修改 */ grid-template-columns: repeat(9, 1fr); /* 第一个值为行间距,第二个值为列间距,对应你之前设置的margin参数 */ gap: 5px 10px; position: relative; width: fit-content; padding: 25px 15px; height: 550px; background-color: rgba(25, 25, 25, 1.0); transform: translate(-50%, -50%); left: 50%; top: 50%; border-radius: 15px; overflow: hidden; user-select: none; box-shadow: 0px 5px 10px rgb(0 0 0 / 80%); align-content: flex-start; } .slot { position: relative; background-color: rgba(0, 0, 0, 1.0); width: 100px; height: 100px; border-radius: 15px; }
补充说明
- 调整单行元素数量只需修改
grid-template-columns: repeat(9, 1fr)里的数字即可,比如要每行放8个就改成repeat(8, 1fr) - 调整容器内边距、元素间距不会影响单行固定数量的规则,Grid会自动适配布局
- FiveM内嵌浏览器完全支持CSS Grid特性,无需担心兼容性问题
内容的提问来源于stack exchange,提问作者lathlaszlo
相关产品推荐
相关产品推荐

