rules="all"仅控制表格内部行列交叉线,不绘制外边框,且必须配合border-collapse:collapse才生效;若未设置该css,rules完全无效。

rules="all" 不等于“整个表格带边框”,它只画内部网格线,且必须配合 border-collapse: collapse 才生效——这是最常被忽略的前提。
为什么加了 rules="all" 却看不到内线?
根本原因不是属性写错了,而是浏览器默认用的是分离边框模型(border-collapse: separate),而 rules 只在合并边框模式下起作用。
将调研报告、方案对比、数据分析、需求梳理、会议纪要、设计说明、代码评审、学习笔记等任务产物输出为可在浏览器直接打开的单文件 HTML,替代 Markdown 作为最终交付物。Markdown 在信息密度、视觉清晰度和可分享性上已跟不上 AI 产物的丰富度,HTML 能同时承载排版、表格、SVG 等。
- 必须显式给
<table> 加 CSS:<code>style="border-collapse: collapse",否则rules完全不渲染 <td> 或 <code><th> 上若已有 <code>border样式,会覆盖rules的线宽和颜色(rules本身不定义颜色、粗细或样式)- 如果同时写了
border="1"和rules="all",HTML5 中border属性仅保留语义含义,实际边框由rules+border-collapse+ 继承的border-width共同决定 -
rules="all"是声明式控制:由<table> 统一开关所有内部交叉线,改一个属性就全局生效 <li>手动设 <code><td>{ border: 1px solid #000 } 是命令式控制:每格独立渲染,相邻单元格可能产生双倍线宽(如左右 <code>td各画 1px 右/左 border),需额外加border-collapse: collapse消除 -
rules不支持单独配色或虚线——想换颜色?只能靠继承的border-color;想用dashed?不行,得放弃rules改用 CSS -
<colgroup></colgroup>配合rules="groups"可实现列分组线,但需结构完整:<colgroup span="2"></colgroup> <colgroup></colgroup> - 如果只写一个
<tbody>,哪怕里面包了 100 行,<code>rules="groups"也不会画任何线真正麻烦的不是
rules本身,而是它依赖的隐式前提:border-collapse: collapse必须写在<table> 上,不能只写在 <code><td>;它的线宽颜色完全靠继承,没法单独定制;现代项目里一旦需要响应式、主题色切换或复杂边框样式,基本就得切到纯 CSS 方案——<code>rules是个可用但不宜深绑的过渡方案。
rules="all" 和手动给每个 <td> 设 <code>border 有什么区别?
行为上看似一样,但控制粒度和维护成本不同:
rules="groups" 这个冷门值怎么用才有效?
它只在有明确语义分组(<thead>、<code><tbody>、<code><tfoot>)时才画线,不是按视觉行数切分。
<ul><li>必须存在至少两个 <code><tbody>,或者 <code><thead> + <code><tbody>,<code>rules="groups" 才会在它们之间画一条横线
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










