在使用PNG透明和不透明时,ie7和ie8中的盈余而不是透明
Posted
技术标签:
【中文标题】在使用PNG透明和不透明时,ie7和ie8中的盈余而不是透明【英文标题】:Surplus in ie7 and ie8 intead of being Transparent while using PNG transparent and opacity 【发布时间】:2011-04-26 11:06:12 【问题描述】:我正在开发一个使用PNG透明和不透明度的项目,但是该区域在IE7和IE8中有多余的而不是透明的,它是黑色的,有人可以帮助我吗?
print of area
谢谢
【问题讨论】:
【参考方案1】:请务必注意,如果不设置 WIDTH,IE7 中的 ALPHA 过滤器将无法工作。
【讨论】:
【参考方案2】:我有一个解决方案,之前在多个网站上使用过。
在您的 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.
【讨论】:
【参考方案3】:IE7 和 IE8 在 PNG 中支持不同类型的透明度。那边没问题。
你遇到的问题是 IE7 和 IE8 不支持 CSS opacity。你很可能有一个动态操纵不透明度(element.style.opacity)的 JS 脚本,例如产生淡入淡出效果。如果 IE7 和 8 不支持不透明度,脚本如何更改 element.style.opacity?它使用 DirectX 过滤器,您可以使用 CSS 过滤器:alpha (opacity = 50);
DirectX 过滤器不是原生支持。结果是它常常伴随着副作用。该项目将以部分不透明度显示 不会由图形引擎“普通”浏览器呈现,而是直接由 DirectX 呈现......在某些情况下,CSS 定位上的字体呈现不同,并且......支持 PNG 透明度.
解决方案:消除两个参数之一。
【讨论】:
不工作,抱歉,flash 解决了问题,为 flash 更改功能轮播。以上是关于在使用PNG透明和不透明时,ie7和ie8中的盈余而不是透明的主要内容,如果未能解决你的问题,请参考以下文章
CSS 在Windows上使用Firefox 3并且wmode透明或不透明时,删除SWF周围的虚线边框
header/footer/nav 标签——在 IE7、IE8 和不支持 HTML5 的浏览器中会发生啥?