IE模式下背景图片不显示

初衷是想给这个提交按钮<input type="submit" value=" />加上背景图片,用了以下css样式:

1 .subtn input {
2     background-attachment: scroll;
3     background-image: url(images/btn.gif);
4     background-repeat: no-repeat;
5     background-position: 0px 0px;
6     height: 20px;
7     width: 60px;
8     border-style: none;
9 }

     但是不知道是怎么回事,在Internet Explorer 6、7、8中皆无法显示该背景图片按钮,依然是默认的按钮形式,而在Firefox和Chrome中皆可以正常显示,可以排除图片链接的有效性,尝试修改了很多次都没有成功。后来使用background简写属性,在一个声明中设置所有的背景属性,在Internet Explorer居然可以正常显示了:

1 .subtn input {
2     background: url(images/btn.gif) no-repeat scroll 0px 0px;
3     height: 20px;
4     width: 60px;
5     border-style: none;
6 }

     刚开始我在想是不是我的网页代码存在特殊性,其他代码可能影响了该样式,但是后来我单独新建了一个.html,里面只写了个form,一个输入框,一个提交框,在使用上面的background属性分开写的css属性后,结果问题依旧,可以说明这是一个普遍性的问题!CSS文档中有提到:

通常建议使用简写属性,而不是分别使用单个属性,因为简写属性在较老的浏览器中能够得到更好的支持,而且需要键入的字母也更少。

     但是我想现在的问题已经不是浏览器版本老的问题了,而是Internet Explorer的问题了。

浏览器能正常显示的怪现象。最后我在网上找到了这段话:IE图片格式问题会导致IE无法显示图片。对于IE来说,直接改后缀名会导致图片不能显示。如果后缀名跟文件自身的格式不相符合,也是一样会无法显示。firefox这些浏览器不会有影响,他们可以自己识别。真相大白了,在css里换了一张图片,没问题了,ie和firefox都能显示了。没想到ie这么脆弱,说罢工就罢工。 

链接图片的反括号和定位值一定要加个空格,
如url(images/bg_media_lihover.gif) 5px 6px no-repeat #00a1de;

为了保证背景图片能够正常显示,建议使用绝对路径,而不是相对于CSS的路径。还是莎士比亚说得好:There are a thousand BUG in a thousand Internet Explorer

background: url(../images/in_bon_02.png) no-repeat scroll 0 0 rgba(0, 0, 0, 0);

IE不显示原来是,rgba(0, 0, 0, 0)的原因。


原文地址:https://www.cnblogs.com/mazey/p/6557761.html