border="0"不可靠,因其仅作用于table元素、不控制th/td边框,易被css覆盖且html5已弃用;真正无边框需同时设置table、th、td的border:none并配合border-collapse:collapse。

直接给 table 加 border="0" 不可靠,尤其在现代项目里,它既不能覆盖单元格边框,又容易被 CSS 覆盖或校验器警告。
为什么 border="0" 经常失效
这个属性只作用于 <table> 元素本身,对 <code><th> 和 <code><td> 完全无效;一旦页面加载了任何 CSS(哪怕只是重置 margin/padding),它的效果就立即消失。更关键的是:<code>border="0" 是 HTML4 遗留写法,HTML5 中已不推荐,部分构建工具或 CMS 会自动过滤或替换它。
- DevTools 显示
border: none但仍有细线?大概率是 iOS Safari 的 sub-pixel 渲染抖动,不是样式没生效 - 富文本编辑器(如 TinyMCE、CKEditor)常自动注入
class或内联style,直接覆盖该属性 - 即使生效,也是一刀切——无法单独控制顶部/底部/左右边框
真正无边框:必须同时重置三处
表格边框由三层叠加构成:<table> 自身边框、<code><th> 边框、<code><td> 边框。任一遗漏都会残留线条。最简可靠的写法是:
@@######@@
<ul>
<li>
<code>border-collapse: collapse 必须设在 table 上,否则即使都设了 none,某些浏览器仍可能渲染出微弱分隔线
table, th, td { border: none } —— 若全局生效,会污染其他表格<table style="border:none"><tr><th style="border:none">...</th></tr></table>
底部无边框这种“半无边框”需求怎么搞
想保留上、左、右边框,只去掉最后一行下方的线?靠 border="0" 完全做不到。得用 CSS 精确控制:
- 给
<tbody> 最后一个 <code><tr> 加 <code>border-bottom: none - 或者更稳妥:用伪类
tr:last-child td { border-bottom: none } - 注意:若表格有
<tfoot>,需额外处理 <code>tfoot tr:first-child,否则脚部第一行上方可能多出一条线真正的难点不在写法,而在排查——浏览器渲染层、CMS 注入、sub-pixel 抖动、伪类选择器作用域,这些地方漏掉一个,就会出现“明明写了
none还有线”的情况。.no-border { border-collapse: collapse; } .no-border, .no-border th, .no-border td { border: none; }
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











