table默认边框和单元格间距因浏览器差异显著:chrome/firefox默认border-collapse:separate且border-spacing为2px,ie/edge旧版可能忽略该属性;eric meyer reset显式设collapse和0间距,normalize.css则保留语义化默认并仅修复继承行为。

table 默认边框和单元格间距在不同 Reset 下差异明显
浏览器对 table 的默认渲染不一致:Chrome 和 Firefox 默认 border-collapse: separate,且 border-spacing 为 2px;IE/Edge 旧版本可能忽略 border-spacing 或强制 collapse。这导致没加 Reset 时,同一份 HTML 表格在不同浏览器里看起来“松散”或“紧凑”完全不同。
- Eric Meyer Reset 显式写了
table { border-collapse: collapse; border-spacing: 0; },能立刻收紧行列间隙 - normalize.css 不设
border-collapse,只修复border-spacing在各浏览器的继承行为,保留语义化默认(比如某些辅助技术依赖separate渲染) - 手写精简 Reset 若漏掉
table,仅重置了margin/padding,border-spacing仍由 UA 决定,问题照旧
th/td 垂直对齐和内边距需单独干预
th 和 td 在 Safari、Firefox 中默认 padding 是 0.5em ~ 1em,Chrome 是 1px 左右;vertical-align 默认是 middle,但部分旧版 IE 会 fallback 到 baseline,造成文字错位。
- 所有主流 Reset 都没统一
th/td的padding,必须手动加:th, td { padding: 8px; vertical-align: top; } - 如果用了
all: unset归零表格单元格,vertical-align会退回到baseline,必须显式设回top或middle - 用
normalize.css时,th的 font-weight 仍为 bold,但td没重置font-weight,若需全表统一字体粗细,得额外覆盖
caption 元素容易被 Reset 忽略
caption 默认是块级元素、居中对齐、有上下 margin,但多数 Reset(包括 Eric Meyer 和 YUI)根本没把它列进选择器列表,导致它在不同浏览器中 margin 值浮动(Firefox 是 0.67em,Chrome 是 1em),甚至在 Safari 中出现换行错位。
- 检查你用的 Reset 文件,搜
caption—— 如果没出现,就得自己补:caption { margin: 0.67em auto; text-align: center; } - 不要用
text-align: center简单粗暴处理:IE 会把 caption 当作 inline 元素撑开宽度,应配合display: table-caption - 如果表格用了
display: grid或flex模拟布局,caption会被当成普通 div 失去语义,此时 Reset 完全无效,得靠 JS 或 aria-label 替代
响应式表格在 Reset 后需要额外适配
Reset 解决的是初始样式一致性,不是响应式行为。当表格在小屏上横向溢出时,overflow-x: auto 能滚动,但 Reset 不保证 table 自身可滚动——因为 table 默认不生成 BFC,父容器 overflow 可能失效。
- 加
table { display: block; width: max-content; }让它可滚动,但会破坏表头/数据列对齐,必须配合thead, tbody { display: block; }和固定列宽 - normalize.css 对
table的 display 属性不做干预,所以响应式改造完全靠你自己控制,Reset 只是起点,不是终点 - 别指望 Reset 自动兼容
display: grid替代方案——grid 布局下caption不再生效,Reset 里的 caption 规则彻底失效
caption、border-spacing 和小屏滚动行为,90% 的项目上线前都漏调这几处。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











