如何让可滚动卡片列表在屏宽>1500px时固定左侧且占满全屏宽度
解决方案
修改思路
- 移除媒体查询中
.list-wrapper的固定宽度与左右自动边距设置,让容器占满整个屏幕宽度,保证滚动区域可以延伸到屏幕右边缘,不会提前截断 - 用动态计算的左内边距控制列表起始位置,保证屏幕宽度大于1500px时,列表左侧位置与1300px居中内容的左边缘对齐,不会随屏幕宽度增大向左偏移
完整修改后的代码
CSS 部分
.list-wrapper { display: flex; overflow-x: auto; overflow-y: hidden; margin-right: 10%; } .card { height: 180px; width: 130px; background-color: yellow; margin-right: 40px; } @media screen and (min-width: 1500px) { .list-wrapper { width: 100%; margin-left: 0; margin-right: 0; padding-left: calc((100vw - 1300px) / 2); /* 可选:右侧添加对称留白,滚动到最右侧时卡片不会贴住屏幕边缘 */ padding-right: calc((100vw - 1300px) / 2); } }
HTML 部分(仅修正了非规范的自闭合div写法,原有逻辑无变动)
<div class="list-wrapper"> <div class="card"></div> <div class="card"></div> <div class="card"></div> <div class="card"></div> <div class="card"></div> <div class="card"></div> </div>
补充说明
如果你的页面其他内容的最大居中宽度不是1300px,可以直接调整calc语句里的1300px数值,适配自己的页面布局规则即可。
内容的提问来源于stack exchange,提问作者U. Watt
相关产品推荐
相关产品推荐

