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

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










