今天偶然发现一个很让人无奈的问题。因为我们的项目需要欠入到别第三方业务的页面。两个页面结构层次不一致。结果发现:在我们的页面在样式文件里边设置了filter滤镜来过滤png图片(png图片在ie6中有灰色的背景,需要使用过滤器来过滤),结果这些滤镜全都不能显示。后来查找问题,发现写在样式文件里边的filter的src是相对于当前浏览器的url路径,而不是相对于样式文件的路径(这与background-image的路径不同,background-image的路径是相对于样式文件的路径)
例如:样式文件
http://a.b.c/a/b/c/d.css 里边有如下样式定义:
.test{
background-image:url(‘../../images/a.gif’);
}
.testFilter{
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=true , sizingMethod=scale, src=’../../images/b.png’ )
}
在页面http://b.c/a/b/c.html里边引用该样式文件,那么:
使用test样式时,它的背景图片取值路径为:
而使用testFilter时,引用的滤镜的图片地址为: