BGCOLOR 属性在现代 HTML 中已废弃,应使用 CSS 的 background-color 设置表格背景色,并配合 border-collapse: collapse 避免背景断裂,同时避免 background-color 与 background 混用。

BGCOLOR 属性在现代 HTML 中已废弃,直接用它设置 <table> 背景色不仅无效,还会让页面无法通过标准校验。
为什么 BGCOLOR 不再起作用
HTML5 彻底移除了 bgcolor 这类表现型属性。主流浏览器虽可能“兼容性渲染”旧写法(比如 <table bgcolor="#f0f0f0">),但行为不可靠——尤其在 strict 模式、移动端 WebView 或新版本 Edge/Chrome 中常被忽略。
真正生效且可控的方式只有 CSS。
用 background-color 给 <table> 设背景色
这是唯一推荐做法。直接作用于 <table> 元素即可统一控制整体色调,不影响单元格内边距或内容排版。
- 内联样式最简单:
<table style="background-color: #e8f4ff;"> - 类选择器更利于复用:
<table class="table-blue">,配合 CSS.table-blue { background-color: #e8f4ff; } - 注意:若表格内
<tr>或<td>也设置了background-color,会覆盖<table>的背景(因为更具体的元素优先级更高)
当需要“透出”表格背景时,别忘了 border-collapse
如果给 <table> 设了背景色,但又用了 border="1" 或 CSS border,默认 border-collapse: separate 会让单元格之间有空隙,导致背景色被“打断”。这时表格看起来像没生效。
- 加一句
style="border-collapse: collapse;"就能连成一片 - 或者在 CSS 中统一写:
table { background-color: #f9f9f9; border-collapse: collapse; } - 不设
border-collapse时,<table>的背景只显示在单元格间隙区域,不是你想要的“整体色调”
避免和 background 图片、渐变混用出错
如果后续想升级为纹理或渐变背景,别用 background-color 和 background 同时写——后者会完全覆盖前者。
- 正确写法(兼容单色与扩展):
background: #e8f4ff;或background: linear-gradient(to bottom, #e8f4ff, #d0e8ff); - 错误写法:
background-color: #e8f4ff; background: url("bg.png");→ 前者被后者干掉 - 透明度需求请用
rgba()或hsla(),别依赖opacity(它会让整个表格内容变透明)
真正要控制表格整体色调,CSS 是唯一稳定路径;bgcolor 看似省事,实则埋下兼容性雷——尤其当设计稿要求精确色值或需要适配暗色模式时,绕不开样式层的真实控制逻辑。

















