IE7 确实支持背景 URL。您说它不支持数据 URL 是正确的,但这不是数据 URL。数据 URL 的 CSS 看起来类似于:
url(data:image/gif;base64,R0lGODlhEAAOALMAAOazToeHh0tLS/7LZv/0jvb29t/f3//Ub/ge8WSLf/rhf/3kdbW1mxsbP//mf///yH5BAAAAAAALAAAAAAQAA4AAARe8L1Ekyky67QZ1hLnjM5UUde0ECwLJoExKcppV0aCcGCmTIHEIUEqjgaORCMxIC6e0CcguWw6aFjsVMkkIr7g77ZKPJjPZqIyd7sJAgVGoEGv2xsBxqNgYPj/gAwXEQA7) .
注意关键字“data:”的使用。这里的关键是数据是字符串...不是文件。
不过,也有一些小问题。首先,URL 必须用引号引起来,如:
body { background: #333 url("images/bg.jpg") repeat-x top; }
然而,IE 对 background 短语法的解释不同,所以我发现扩展语法对 IE pre 8 错误有很大帮助。
body { background-color: #333; background-image:url("images/bg.jpg");
background:repeat-x; background-position:top;
}
最后,您的容器 div 必须使用背景颜色显式定义:
.cntdiv {
width:100%;
display:block;
margin:0 auto;
margin-top:15px;
overflow:hidden;
/* This is the line that will do it */
background:transparent;
/* OR EVEN */
background-color:transparent;
}
此代码在 IE7 中经过测试并正确运行,并且在其他代码中也具有相同的行为。明智地使用“透明”是很棒的。
还必须了解,您面临的问题不是错误,而是用户代理 CSS 样式。这是根据 W3C 标准,与 IE 具有的其他 div 错误不同(例如较差的 :hover 支持)。因为您没有为您的div 定义背景,所以用户代理 (IE7) 可以为所欲为。 所有 HTML 元素和所有 浏览器都是如此。这就是为什么按钮看起来一定的原因,除非你用 CSS 改变它。明确定义各个方面是克服此类小问题的最佳方法。
希望这会有所帮助,
模糊逻辑