background属性在html5中已被彻底废弃,不能在现代浏览器中可靠生效;必须用css的background-image配合background-repeat、background-position等规则实现,且需注意路径基准、容器透明度及兼容性问题。

BACKGROUND 属性是 HTML 4 时代的遗留写法,早已被 HTML5 废弃,**不能在现代浏览器中可靠生效**。直接写 <td background="icon.png"> 或 <code><table background="bg.jpg"> 看似简单,但实际会失效、不校验、无调试提示,且被主流构建工具(如 Vite、Webpack)的 HTML 解析器直接忽略。
<h3>为什么 <code>BACKGROUND 属性现在基本无效
HTML5 规范移除了所有表现层属性,包括 BACKGROUND、bgcolor、bordercolor 等。浏览器虽可能“兼容性兜底”渲染部分旧标签,但行为不可控:Chrome/Firefox/Safari 对 BACKGROUND 已完全无视;Edge 仅在 quirks mode 下偶然响应;任何使用 Web Components、Shadow DOM 或 SSR 的场景都会彻底丢失效果。
- 它不参与 CSS cascade,无法被
!important覆盖或用 DevTools 检查 - 路径解析基于 HTML 文档位置,而非 CSS 文件位置,极易 404
- 不支持
background-size、background-position等关键控制,图片必然拉伸/平铺失控
CSS background-image 设置单元格背景的实操要点
真正起作用的是 CSS 的 background-image,但必须配合显式声明才能避免默认行为干扰:
- 务必设置
background-repeat: no-repeat—— 否则小图会平铺成马赛克,尤其在<td> 这种窄高容器里 <li>用 <code>background-position: center center或具体像素值(如4px 2px)精确定位,避免图标偏移 - 给
<td> 加 <code>background-color: #fff(或其他底色)—— 图片加载失败时有降级,否则透出父容器背景导致文字难读 - 若需图标+文字共存,记得留出左侧 padding(如
padding-left: 28px),防止文字覆盖图片
示例:
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
.icon-cell { background-image: url("doc.svg"); background-repeat: no-repeat; background-position: 4px center; background-color: #ffffff; padding-left: 28px; }
给整个表格设背景图却看不到?检查这三个地方
<table> 默认是透明容器,它的背景会被子元素(<code><tr>、<code><td>)的白色背景遮盖——哪怕你没写 <code>background-color,浏览器也会按规范渲染默认白底。
- 确认没给
<td> 或 <code><tr> 设 <code>background-color(含transparent以外的任何值) - 把背景图挂到外包
<div> 上,并设 <code>table { background-color: transparent; } - 或改用
<tbody>:它不自带背景,默认透出,适合表体水印等局部场景 <p>可靠写法:</p> <pre class="brush:php;toolbar:false;"><div style="background-image: url('grid.png'); background-size: 16px 16px;"> <table style="background-color: transparent;"> ... </table> </div></pre> <h3>SVG 和小图做单元格背景的兼容性陷阱</h3> <p>SVG 图标作为 <code>background-image在 Chrome/Firefox/Safari 中缩放清晰,但 IE11 及更早版本不支持 SVG 作背景(显示空白)。若需兼容 IE,得提供 PNG 备用:- 用
@supports (background-image: svg-url())做特性检测(但 IE 不支持 @supports) - 更务实的做法:直接用 PNG,尺寸压缩到 10KB 以内;或用 inline data URI 避免额外请求
- 避免在滚动区域(如固定高度 + overflow-y:auto 的表格)用大图背景,渲染卡顿明显
-
background-size: contain在单元格中常导致图片过小不可见,优先用16px 16px或auto配合background-position
最易被忽略的不是语法,而是路径基准和
background-repeat的默认值——不显式声明,就等于主动选择一整页马赛克。 - 用










