border-spacing第二个值是行间距,但不生效的根本原因是border-collapse计算值为collapse,此时该属性被浏览器强制忽略;必须显式设置table{border-collapse:separate}并确认computed样式,其第二个值严格控制相邻上下边框间的物理距离。

border-spacing 的第二个值就是行间距,但写上不生效,大概率是因为 border-collapse 被设成了 collapse —— 此时该属性直接被浏览器忽略,连 DevTools 的 computed 样式里都可能标为 “invalid”。
将 Markdown 文章转换为微信公众号兼容的纯 HTML 格式。当用户要求"转成微信格式"、"生成公众号文章 HTML"、"排版到微信草稿箱"、"微信粘贴格式"时触发。输出带内联样式的纯 HTML,微信编辑器可直接渲染,无需额外适配。支持标题、段落、列表、粗体、行内代码、表格、引用块、代码块、配图的完整转换。
为什么 border-spacing 设了行间距却没反应
根本原因不是写错了值,而是表格渲染模式被锁死了。只要 border-collapse 的最终计算值是 collapse,border-spacing 就形同虚设。
- 别信“默认就是
separate”——Bootstrap、Normalize.css、甚至某行全局table { border-collapse: collapse; }都可能悄悄覆盖 - 必须显式写
table { border-collapse: separate; },且只作用于<table> 元素本身(写在 <code><tr> 或 <code><td> 上无效) <li>用 DevTools 的 “Computed” 面板确认 <code>border-collapse真实值,不要只看源码有没有写 - 某些 UI 框架(如
Ant Design)的表格组件默认启用collapse,需额外加!important或更高优先级选择器覆盖 -
border-spacing: 0 12px→ 列间距为 0,行间距为 12px(仅垂直方向有间隙) -
border-spacing: 8px 4px→ 列距 8px,行距 4px(注意顺序:先横后竖,不可颠倒) - 单位只能是
px、rem、vw等合法长度值,不支持%、em或负值 - 它产生的间隙是纯透明的——父容器背景色、阴影、border 都能透出;而
padding是往单元格内部挤,完全不是一回事 -
margin对<td> 和 <code><th> 完全无效(display 类型决定的硬限制),加了也白加 <li>想让文字离单元格边框远点 → 改 <code>td, th { padding: 8px },别碰border-spacing - 想让两行之间拉开距离 → 只动
table { border-spacing: 0 10px },别给<tr> 加 margin <li>用 <code>padding模拟行间距会导致:表格总高度不可控、边框视觉“浮起”、响应式错位、跨行单元格(rowspan)下方间隙位置反直觉
border-spacing 的第二个值到底控制什么
它严格控制相邻 <tr> 元素上下边框之间的物理距离,即“行与行之间的空隙”,不是 <code><td> 内容的行高,也不是 <code>line-height。
和 padding、margin 混用时容易踩的坑
三者作用域完全不同,混用会导致视觉错乱或布局失控。
立即学习“前端免费学习笔记(深入)”;
真正麻烦的不是参数怎么写,而是得先分清:你要的到底是「单元格边框之间的空隙」,还是「内容到边框的距离」——弄混这两者,调再多次样式也解决不了问题。


















