关于滤镜AlphaImageLoader src属性的相对路径问题

今天偶然发现一个很让人无奈的问题。因为我们的项目需要欠入到别第三方业务的页面。两个页面结构层次不一致。结果发现:在我们的页面在样式文件里边设置了filter滤镜来过滤png图片(png图片在ie6中有灰色的背景,需要使用过滤器来过滤),结果这些滤镜全都不能显示。后来查找问题,发现写在样式文件里边的filtersrc是相对于当前浏览器的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样式时,它的背景图片取值路径为:

http://a.b.c/a/images/a.gif,

而使用testFilter时,引用的滤镜的图片地址为:

http://b.c/images/b.png

猜你喜欢

转载自lianggeblog.iteye.com/blog/1698002