table 默认 layout 为 auto,列宽由第一行内容动态决定;overflow-x: auto 对 table 无效,需包裹在有宽度限制的 div 中;启用 table-layout: fixed 并配合 colgroup 或 th 的 width 及 table width: 100% 才能锁定列宽;img、textarea 等需额外约束防止撑破单元格。
浏览器默认用 table-layout: auto 渲染表格,意味着列宽由第一行内容(或 col、colgroup)动态计算得出。哪怕你写了 width: 100% 或给 td 设了 width: 200px,只要某单元格里塞进一长串无空格文本(比如 URL)、大图或未约束的 input,整列就会被撑开——父容器根本拦不住。
table 元素本身不响应 overflow 属性(除非强行改成 display: block,但会破坏语义和样式)。常见错误是直接给 table 写 overflow-x: auto,结果滚动条根本不出现。真正有效的是:把 table 包进一个有明确宽度限制的 div,再对这个 div 设置 overflow-x: auto。
必须显式设 table-layout: fixed,否则列宽永远受内容支配。设完之后,列宽由第一行(或 colgroup)决定,后续所有行都按此缩放。关键点:
colgroup 比 th 的 width 更可靠,尤其跨浏览器时th 的 width 必须存在且生效,否则 fallback 到 auto
table 自身要配 width: 100%,否则 fixed 不起作用table-layout: fixed 只管列宽,不管单元格内部内容会不会溢出。常见漏点:
img 没加 max-width: 100% 和 height: auto,原始尺寸照常突破textarea 或 input 在 td 里没设 box-sizing: border-box + min-width: 0,padding/border+默认 min-width: auto 一起发力white-space: nowrap 的文本,得额外配 overflow: hidden + text-overflow: ellipsis 或 word-break: break-word
td 里的 img 或伪元素悄悄加了 2px 边框+16px padding,而你只重置了 table 却没管它——这种溢出不会触发滚动条,但会让布局在小屏上突然错位。 tlwdr7650路由器没有wps按钮(tlwdr7650路由器没有wps按钮怎么办)
tlwdr7632扩展器电脑怎么设置(tlwdr7632扩展器电脑设置方法)
tlwda6332re安装教程(tlwda6332re如何安装)
tlwdr7632扩展器手机怎么设置(tlwdr7632扩展器手机设置方法)
tlxdr3010怎么设置网速快(tlxdr3010网速快设置方法)
tlwdr5620易展版怎么克隆(tlwdr5620易展版克隆方法)