必须用css的border-collapse: collapse配合table、th、td{border:none}才能彻底清除表格边框,因html的border属性已废弃,且仅设border:none不生效于分离边框模型。

table 的 border 属性已废弃,别再用 border="1"
HTML5 中 border 这个表格属性(比如 <table border="1">)已被完全弃用,浏览器虽仍兼容,但会触发控制台警告,且语义混乱、样式失控。真正可控的方式只有 CSS。
<h3>用 <code>border-collapse 控制边框是否合并
表格默认是「分离边框模型」(border-collapse: separate),导致单元格边框重叠、出现双线或空隙;要去掉多余边框,必须先设为合并模型:
table {
border-collapse: collapse;
}
- 不加这句,
border: none可能只去掉外框,内部td/th边框还在 - 加了之后,所有相邻边框合为一条,
border: none才能真正清空整张表的边框 - 若想保留「虚线分隔线」效果,可配合
border-spacing: 0(仅在separate下生效)
彻底隐藏边框的三步写法
光清空 table 元素自身边框不够,th 和 td 默认可能带浏览器 UA 样式(尤其在某些旧版 Safari 或 Edge 中):
table,
th,
td {
border: none;
border-color: transparent;
}
table {
border-collapse: collapse;
}
- 必须同时覆盖
table、th、td,否则部分单元格仍显细线 -
border-color: transparent是保险做法——有些浏览器对border: none解析不一致 - 如果用了
outline或box-shadow(比如某些 UI 框架自动添加),也要一并清掉
遇到「删不干净」的边框,优先检查这些地方
常见漏网之鱼不是代码写错,而是被其他层干扰:
- 父容器设置了
outline(比如焦点状态残留),用 DevTools 检查 computed 样式里的outline - CSS 重置库(如 Normalize.css)或框架(如 Bootstrap)默认给
table加了border,需提高选择器权重覆盖 - 某些 CMS 或编辑器(如 WordPress 可视化编辑器)会自动注入内联
style,优先级高于外部 CSS - 用
border: 0不等于border: none:前者保留边框占位(可能有空白),后者完全移除渲染
最稳妥的起点永远是:强制 border-collapse: collapse + 统一清空 table、th、td 的 border 和 outline。细节往往藏在继承和层叠里,而不是你写的那行 border: none 上。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











