应使用 border-collapse: collapse 配合显式 border,因 cellspacing 是 html4 遗留属性,html5 已废弃,在严格模式下常被忽略;仅设 collapse 不够,需为 table 设置 border(如 1px solid transparent)并重置 padding、margin、font-size 等以消除假间隙。

直接用 border-collapse: collapse,配 border,别再依赖 cellspacing —— 它在现代 HTML 中行为不可靠,尤其在严格模式下可能被忽略。
为什么 cellspacing="0" 有时不起作用?
浏览器把 cellspacing 解释为「单元格外边距」,但它和 CSS 的 border、padding、box-sizing 会叠加冲突。尤其在 Safari/Firefox 中,即使写了 cellspacing="0",仍能看到白缝。
-
cellspacing是 HTML4 遗留属性,HTML5 已废弃,不推荐用于新项目 - 在
下,部分浏览器会降级处理或完全忽略该属性 - 它无法与 Flex/Grid 布局中的表格容器协同工作
border-collapse: collapse 必须配 border
只写 border-collapse: collapse 不够 —— 它只是“合并相邻边框”,如果 <td> 或 <code><th> 没定义边框,合并后依然有透明缝隙(尤其背景色不同时)。
<ul>
<li>安全写法:<code>table { border-collapse: collapse; border: 1px solid transparent; }
transparent 比 none 更稳妥,border: none 会破坏合并逻辑border: 1px solid #000,再配合 collapse 即可无缝还有哪些地方会偷偷加空隙?
即使边框问题解决了,<td> 内部内容、父容器样式、字体渲染都可能制造“假间隙”。
<ul><li><code><td> 默认有 <code>padding,需显式设 padding: 0 才真正贴边
font-size: 0 或含换行符的空格,会在表格底部/右侧产生微小间隙<p></p>、<h3></h3> 等自带 margin 的元素,必须重置其外边距border-collapse,但旧版 IE 可能需要额外 hack,不过现在基本可忽略真正麻烦的不是边框合并本身,而是得一层层排查:从 table 到 tr、td、再到内部文本节点的 line-height 和 vertical-align —— 很多空隙根本不是表格属性造成的,而是渲染细节在作祟。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











