使用jQuery的IE GIF / PNG透明度问题

好的,这很奇怪……

这是有问题的页面: http : //s289116086.onlinehome.us/lawjournaltv/index.php

主要的蓝色标注背景最初是PNG,但是当我向它应用一些jQuery技巧时(单击右上角的数字看看我的意思),出现了一个丑陋的白色边框,其中透明度应该是。 请参阅IE8的此截图: http : //skitch.com/darkdriving/n62bu/windows-xp-professional

我想我可以牺牲PNG的质量/灵活性,只是将每个背景重新保存为GIF并将哑光颜色设置为白色(现在)。 好吧,我被certificate是错的,因为IE正在将GIF透明度视为与原始PNG相同。

我在这里读到PNG,Javascript和IE与多个filter有关的问题不能应用于一个图像,但不应该免除GIF因为它们缺少Alpha通道吗? 有没有办法让这个页面在IE浏览器中看起来与Firefox或Webkit浏览器相似?

提前致谢!

这是IE中的一个错误。

没有当前版本的IE支持opacity CSS proeprty,因此jQuery使用Alphafilter。 但是,filter会强制元素完全不透明,因此它们无法与透明PNG一起正常工作。

要在半透明元素中使用透明PNG,需要使用AlphaImageLoaderfilter(即使在IE8中)应用PNG。 例如:

 if ($.browser.msie) $(something).css({ background: 'none', filter: 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src="/Folder/Image.png", sizingMethod="scale"),alpha(opacity=100)' }); 

(此代码有效;我现在正在使用它)

我基本上通过在每个页面刷新上加载一组不同的图像(使用PHP)来解决这个问题。 它不是那么动态,但我尝试使用丑陋的专有CSSfilter或其他基于javascript的插件都没有结果。 在我看来,这显然是我在浏览IE浏览器时遇到的最大错误之一。 事实上,我很惊讶我花了很长时间才遇到它。

在这种情况下,明智的话:尝试在纯色上支持透明图像或在IE中遭受后果。