此问题的出现是因为fancybox自带的css在处理ie6样式时,图片路径存在问题。
原因分析:IE6下 DXImageTransform.Microsoft.AlphaImageLoader的src 同 css中backgroud:url()有一些不同,有一些特殊。
我们用的模板是在控制器中借助smarty模板display出去的,DXImageTransform.Microsoft.AlphaImageLoader的src这时要相关对控制器路径(即:当前请求路径)。
问题处理:
打开fancybox/jquery.fancybox-1.3.4.css
ctl + F 找到:
.fancybox-ie6 #fancybox-close { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/fancybox/fancy_close.png', sizingMethod='scale'); }
把filter: progid:DXImageTransform.Microsoft.AlphaImageLoader的src地址做一下调整,改为相对于控制器(当前路径), 如src='../../../js/fancybox/fancy_close.png';(注:这里不要照搬,要视你的项目路径而定,当然如果想简单,直接写绝对地址也可)
这样改后,关闭按扭就可以在ie6下显示了。
同理:把下面几个的地址也改一下就能看到图片一周的阴影了
.fancybox-ie6 #fancybox-left-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_left.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-right-ico { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_nav_right.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-title-over { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_over.png', sizingMethod='scale'); zoom: 1; }
.fancybox-ie6 #fancybox-title-float-left { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_left.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-title-float-main { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_main.png', sizingMethod='scale'); }
.fancybox-ie6 #fancybox-title-float-right { background: transparent; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='fancybox/fancy_title_right.png', sizingMethod='scale'); }