设 white-space: nowrap,防止文字断行破坏列宽
禁用 table-layout: auto 的默认行为,改用 table-layout: fixed,让列宽可控
 避免用 font-size: smaller 或 zoom 缩放表格——这会模糊文字且不可访问
@media (max-width: 768px) {
table {
table-layout: fixed;
width: 100%;
}
th, td {
white-space: nowrap;
padding: 8px 6px;
}
}
处理固定表头时的滚动冲突
如果表格有固定表头(position: sticky),横向滚动时表头可能错位或卡住。这不是 bug,是 sticky 在 overflow 容器里的限制。
-
position: sticky 在 overflow-x: auto 的父容器里仍可工作,但要求父容器不能是 transform 或 will-change 触发的层叠上下文
- 表头单元格建议统一设
min-width(如 min-width: 120px),避免被压缩到看不见
- 不要对
单独套滚动容器——会导致表头和内容不同步
iOS Safari 滚动卡顿和弹性回弹问题
iOS 上 overflow-x: auto 容器常出现滚动迟滞、回弹过猛、无法拖拽等问题,本质是 Safari 对非 body 滚动区域的优化不足。
- 加
-webkit-overflow-scrolling: touch(仅 iOS 旧版必需,iOS 16+ 已弃用但无害)
- 避免在该容器上使用
transform、filter 或 backdrop-filter,这些会禁用原生滚动加速
- 若仍卡顿,可尝试给容器加
will-change: scroll-position,但仅在必要时启用——它会强制创建图层,增加内存开销
横向滚动真正难的不是加样式,而是让每一列在窄屏下保持可读性。文字截断、省略号、hover 展开详情这些交互补救措施,往往比硬扛滚动更重要。
|