如何实现带图片的多个div并排居中、间距不小于10px,解决多余div换行问题
问题原因
- 你当前给grid容器设置的是固定2列布局
grid-template-columns: 1fr 1fr,所以超过2个的子元素会自动换行到下一行 - 容器宽度仅为视口的33.33%,宽度不足无法容纳多列卡片,且用transform偏移实现居中的方式不规范,容易出现布局错位
修正方案
如果你需要自适应排列多个卡片(只要容器宽度足够就并排,放不下才换行),可以用auto-fill自动计算列数,同时调整容器宽度和居中方式:
.container { display: grid; /* 自动计算列数,每列最小宽度200px可根据你的卡片尺寸调整,间距不小于10px这里设置了10px可自行加大 */ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; width: 90%; /* 调整容器宽度占比,也可以设固定值比如1200px */ margin: 20px auto 0; /* 水平居中,顶部保留20px边距 */ text-align: center; } .column1 { background-color: whitesmoke; border-radius: 20px; padding: 10px; /* 加内边距避免内容贴边 */ }
HTML部分不需要修改,如果你需要固定N列并排,把grid-template-columns里的auto-fill改成你要的列数即可,比如要4列并排就写grid-template-columns: repeat(4, 1fr),同时把容器宽度调整到足够容纳4列的尺寸。
内容的提问来源于stack exchange,提问作者ChinoQT
相关产品推荐
相关产品推荐

