rules属性仅在border-collapse:collapse下控制内部网格线显隐,不干预单元格自身边框;rules="none"仍见线是因单元格自有border或border-collapse为separate;精准删线须用css选择器控制具体边框。

rules 属性本身不能“隐藏多余的边框线”,它只在 border-collapse: collapse 模式下控制是否绘制行/列之间的**内部网格线**——而且它不区分“多余”或“需要”,只是开关式粗粒度控制。真要精准删线,得靠 CSS。
为什么 rules="none" 有时还看到线?
根本原因不是 rules 失效,而是你没管 <td> 和 <code><th> 自己的 <code>border:
-
rules不影响单元格自身边框,只决定“行与行之间”“列与列之间”要不要画一条线 - 如果某个
<td style="border: 1px solid #000">,那它的四边线照常显示,<code>rules="none"完全不管 - 浏览器默认用
border-collapse: separate渲染表格,此时rules被彻底忽略——哪怕写了rules="none"也毫无作用 -
rules="none"→ 行间横线、列间竖线全不画(但<td> 自己的 <code>border还在) -
rules="rows"→ 只画<tr> 之间的横线,同列 <code><td> 之间不画竖线 <li> <code>rules="cols"→ 只画同列相邻<td> 之间的竖线,<code><tr> 之间不画横线 <li> <code>rules="all"→ 行间横线 + 列间竖线都画,但所有线共用同一套border样式(颜色/宽度/线型由 CSS 决定) - 删某行下方线:
tr:last-child > td, tr:last-child > th { border-bottom: none; } - 删某列右侧线:
td:nth-child(1), th:nth-child(1) { border-right: none; } - 表头和数据区之间加双线:
tbody tr:first-child > td, tbody tr:first-child > th { border-top: 2px solid #333; } - 要响应式隐藏竖线(如手机端):
@media (max-width: 768px) { td, th { border-right: none; } }
rules 的取值到底删哪几根线?
它只删“内部交界处”的线,且必须配合 border-collapse: collapse 才生效:
文章转信息图。将文章/笔记转化为手机可读的 HTML 信息图,自动匹配视觉风格。触发场景:文章转图、笔记转图、信息图、转小红书图、做张图、可视化这篇文章、文生图。
真正要删某一边的线,别碰 rules
比如想让最后一行下面没线、第一列右边没线、表头下加粗线——rules 完全做不到。必须切回 CSS:
记住:rules 是个历史遗留开关,它没有选择器、不支持条件、不响应变化。一旦你开始写 border-top 或 border-right,rules 就该被删掉——留着反而容易干扰实际效果。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










