边框“消失”本质是合并单元格被跨越位置无td/th元素,故无边框可渲染;需先设table的border-collapse: collapse,再对rowspan单元格加border-bottom、colspan加border-right,且样式须与周围一致。

边框“消失”不是没画,是根本没渲染那个位置
合并单元格(rowspan 或 colspan)后,被跨越的单元格位置不会生成任何 td 或 th 元素——那里是空的,自然没有边框可显示。你看到的“边框缺失”,其实是交界处缺了一段视觉连接,不是 CSS 失效。
必须先设 border-collapse: collapse 在 table 上
这个声明是前提,其他所有补救都建立在此之上:
-
border-collapse: collapse只对table元素生效,写在td、th或外层div上完全无效 - 它让相邻边框真正“挤成一条线”,废掉
border-spacing,否则即使手动加边框也会错位或叠加 - 不设它,
td和table的边框各自渲染,rowspan下方的横线、colspan右侧的竖线必然断裂
交界处用 border-bottom 或 border-left 手动补
合并单元格本身不产生新元素,但它的边界需要显式强化:
- 对
rowspan单元格:它下方的横线常断开,给该td加border-bottom: 1px solid #333 - 对
colspan单元格:它右侧的竖线易消失,给该td加border-right: 1px solid #333 - 不要只靠伪类(如
:last-child),要精准选中合并单元格本身,否则响应式下容易漏补 - 如果合并单元格跨多行/多列,补的边框需和周围单元格的
border完全一致(宽度、样式、颜色),否则粗细突兀
小屏下别硬撑 rowspan/colspan
移动端浏览器对原生合并支持不稳定,rowspan 可能被忽略,导致人工补的边框错位到错误位置:
- 不要试图用 CSS 覆盖 HTML 属性(
rowspan: 1无效) - 在
@media (max-width: 768px)中改用结构降级:把合并内容拆成普通行,用标题+缩进模拟逻辑分组 - 补边框的 CSS 规则也要包裹在媒体查询里,避免小屏下干扰新布局
border-collapse: collapse 写错位置,或者以为补了 border-bottom 就万事大吉,却忘了它和周围单元格的边框样式必须严格一致。前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











