答案是需配合 white-space: nowrap 或 flex 布局才能使 overflow-x: auto 有效,因默认块级子元素会换行堆叠而不溢出;仅设 overflow: scroll 无效。

直接用 overflow-x: auto + white-space: nowrap 就能实现局部商品列表的左右滚动,不需要 JS,也不必引入轮播库。关键在父容器的尺寸控制和子项的内联布局。
为什么不能只用 overflow: scroll?
单纯加 相比 示例结构: 默认滚动条丑、占空间,但隐藏它可能影响可用性: 真正容易被忽略的是:左右滚动区域必须有明确的视觉边界(比如加边框、阴影或背景色),否则用户根本意识不到可以滑动——尤其是纯卡片列表,没有箭头、没有滚动条提示时,90% 的人会直接忽略。overflow: scroll 或 overflow-x: auto 没用,因为默认块级子元素(如 )会换行堆叠,宽度由父容器撑满,根本不会“溢出”。必须打破文档流的换行行为:
white-space: nowrap 阻止子项换行(适用于文本或 inline 元素)display: inline-block / display: inline
width: 100% 或具体像素值),且 overflow-x: auto
flex 布局是更现代、更可控的方式white-space,display: flex 更可靠,尤其对图片、按钮等混合内容:
display: flex 和 overflow-x: auto
flex-shrink: 0,否则小屏下会被压缩变形scroll-behavior: smooth 让滚动更自然(支持 Chrome/Firefox/Edge)-webkit-overflow-scrolling: touch(iOS Safari 旧版必需)<div style="display: flex; overflow-x: auto; scroll-behavior: smooth; -webkit-overflow-scrolling: touch;">
<div style="flex: 0 0 auto; width: 200px;">商品1</div>
<div style="flex: 0 0 auto; width: 200px;">商品2</div>
<div style="flex: 0 0 auto; width: 200px;">商品3</div>
</div>
滚动条样式和兼容性要注意什么?
::-webkit-scrollbar 自定义,但 Firefox 不支持overflow: hidden)会导致用户无法手动拖拽,不推荐touch-action: pan-y 禁用横向拖拽,会直接禁掉左右滚动,慎用scroll-behavior 支持差,可降级为 JS element.scrollTo()
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











