答案 0 :(得分:1)
IE7和IE8支持PNG中不同类型的透明度。那边没问题。
您遇到的问题是IE7和IE8不支持CSS不透明度。并且您很可能有一个动态操作不透明度(element.style.opacity)的JS脚本,例如产生淡入淡出效果。如果脚本不支持不透明度,那么如何在IE7和8中更改element.style.opacity?它使用DirectX过滤器,与使用CSS过滤器相同:alpha(opacity = 50);
DirectX过滤器不是本机支持。结果是经常出现副作用。该项目将显示部分不透明度将不会由图形引擎“普通”浏览器呈现,但直接由DirectX ...在某些情况下在CSS定位上呈现字体的差异,并且...支持PNG透明度
解决方案:消除两个参数中的一个。
答案 1 :(得分:1)
我有一个解决方案,以前在多个网站上使用过。
在将html内容写入页面后,只需运行此功能:
function fixPNGs(){
if(jQuery.browser.msie && jQuery.browser.version < 9){
var i;
//alert(document.images.length);
for(i in document.images){
if(document.images[i].src){
var imgSrc = document.images[i].src;
if(imgSrc.substr(imgSrc.length-4) === '.png' || imgSrc.substr(imgSrc.length-4) === '.PNG'){
document.images[i].style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled='true',sizingMethod='crop',src='" + imgSrc + "')";
}
}
}
}
}
它只适用于img元素而不适用于背景图像。但是一旦应用,您可以淡入淡出图像并为您的心灵内容添加动画效果。我对一些雄心勃勃的动画经历了一些奇怪的副作用,但在90%的情况下它都很好。
希望这能帮到你!
W上。
答案 2 :(得分:0)
重要的是要注意,如果不设置WIDTH,IE7中的ALPHA过滤器将无法工作。