update:最近发现一个更好的解决方案,使用VML替换AlphaImageLoader,可以解决被替换元素hover状态不起作用的问题。详见:http://www.dillerdesign.com/experiment/DD_belatedPNG/。我使用VML方式做的页面:http://fang.kuwo.cn/p/Radio
// Universal transparent-PNG enabler for MSIE/Win 5.5+
// http://dsandler.org
// From original code: http://www.youngpup.net/?request=/snippets/sleight.xml
// and background-image code: http://www.allinthehead.com/retro/69
// also:
// * use sizingMethod=crop to avoid scaling PNGs (who would do such a thing?)
// * only do this once, to make it compatible with CSS rollovers
if (navigator.platform == "Win32" && navigator.appName == "Microsoft Internet Explorer" && window.attachEvent) {
window.attachEvent("onload", enableAlphaImages);
}
function enableAlphaImages(){
var rslt = navigator.appVersion.match(/MSIE (\d+\.\d+)/, '');
var itsAllGood = (rslt != null && Number(rslt[1]) >= 5.5);
if (itsAllGood) {
for (var i=0; i<document.all.length; i++){
var obj = document.all[i];
var bg = obj.currentStyle.backgroundImage;
var img = document.images[i];
if (bg && bg.match(/\.png/i) != null) {
var img = bg.substring(5,bg.length-2);
var offset = obj.style["background-position"];
obj.style.filter =
"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+img+"', sizingMethod='crop')";
obj.style.backgroundImage = "url('/images/spacer.gif')";
obj.style["background-position"] = offset; // reapply
} else if (img && img.src.match(/\.png$/i) != null) {
var src = img.src;
img.style.width = img.width + "px";
img.style.height = img.height + "px";
img.style.filter =
"progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='crop')"
img.src = "/images/spacer.gif";
}
}
}
}
注意,需要将png图片设置为元素的背景图片,并且添加一个图片“spacer.gif”。
示例见:http://blog.gulu77.com/demo/200809/test_PNGTransparncyinIE/
转自:http://blog.gulu77.com/?p=147
分享到:
相关推荐
处理完IE6下的PNG透明问题后,可能会遇到一些新的挑战,例如性能影响、图片质量下降或是与其它CSS样式的冲突。因此,在应用解决方案时,应进行充分的测试,确保在保持视觉效果的同时,不影响网站的整体性能和用户...
为了解决这个问题,开发者们开发了一系列JavaScript库和技巧,使得在IE6下也能实现PNG图像的透明效果。 1. **Alpha Image Loader滤镜**:IE6提供了一个名为"Alpha Image Loader"的滤镜,可以通过CSS样式应用到元素...
标题“IE6下PNG透明代码”所涉及的关键知识点包括: 1. **PNG格式图片**:PNG是网络上常用的图像格式之一,具有高保真性和透明度支持。它有PNG8和PNG24两种常见类型,其中PNG8通常用于简单的颜色需求,支持256色和...
这篇教程将详细介绍如何在IE6下实现PNG图片的透明效果。 首先,我们需要理解IE6对PNG透明的支持问题。IE6只部分支持PNG-8格式,而不支持PNG-24格式的半透明或Alpha透明。PNG-8最多只能有256种颜色,并且不支持Alpha...
以下是关于"IE6下PNG背景透明的方法"的详细解释: 1. **CSS滤镜法**:这是最基础的解决方式,利用CSS中的`filter`属性。对于PNG8格式的图片,可以使用`filter:progid:DXImageTransform.Microsoft.AlphaImageLoader...
这个库通过JavaScript和CSS的结合,使得在IE6下也能呈现出与现代浏览器一致的PNG透明效果,包括平铺、定位和链接功能。开发人员在实际应用中,需要对JavaScript和CSS有一定的掌握,才能有效地利用这个工具。
本文将深入探讨这个问题,并提供JavaScript解决方案来实现IE6下PNG图片的透明显示。 首先,我们需要理解为什么IE6不支持PNG透明。PNG-24格式允许半透明和全透明效果,但IE6只支持8位的PNG-8,而这种格式最多只能有...
总的来说,解决IE6下的PNG透明问题需要对JavaScript、CSS以及IE特有特性有深入理解。随着IE6的逐渐淘汰,现在的新项目可能不再需要考虑这个问题,但回顾这些历史遗留的技术挑战,有助于我们更好地理解前端技术的发展...
在本案例中,`pngbehavior.htc`就是一个实现PNG透明的HTC行为文件。将这个文件放在服务器上,然后通过CSS链接到需要透明效果的PNG图像。 4. **CSS样式应用**: - 在CSS中,为需要透明效果的PNG元素添加如下样式: ...
标题“在IE6下使PNG透明”涉及到的是一个古老但仍然重要的Web开发问题,尤其是在处理图形和浏览器兼容性时。PNG(Portable Network Graphics)是一种流行的图像格式,支持24位色彩和透明度,但老版本的Internet ...
只需引入库并调用相应函数,即可使PNG图片在IE6下变得透明。 3. **CSS Hack**:开发者还可以利用CSS选择器的特定性来为IE6单独设置样式。例如,可以使用`*html`前缀或者`_height`这样的非标准属性,将透明滤镜应用...
为了解决这个问题,开发者们提出了多种JavaScript解决方案,使得在IE6下可以实现PNG透明。 首先,我们要理解PNG的透明特性。PNG支持两种透明模式:索引色透明(即PNG8,使用1位Alpha通道)和真彩色透明(即PNG24,...
`div_bg.png`则可能是需要在IE6下实现透明效果的PNG图片。 总的来说,解决IE低版本的PNG透明问题需要对浏览器兼容性有深入理解,熟练掌握CSS滤镜、JavaScript库以及HTML和CSS的替代方案。在实际开发中,为了确保...
为了解决这个问题,开发者们采取了一些JavaScript技巧来实现IE6下的PNG透明效果。本压缩包提供的"ie6中png透明解决方案 js"正是针对这一问题的解决方案。 首先,我们需要理解PNG图片格式。PNG是一种无损压缩的图像...
这个库通过JavaScript代码来模拟对PNG透明的支持,从而使得在IE6中可以正确显示带有透明效果的PNG图片。文件“DD_belatedPNG_0.0.8a.js”就是这个库的一个版本,它可以通过引入到HTML页面中,来为IE6提供透明PNG的...
PNG(Portable Network Graphics)格式的图片在其他现代浏览器中能够很好地支持透明效果,但在IE6下,PNG-24格式的图片会出现背景不透明或者颜色失真的现象。为了解决这个问题,开发者们提出了一些解决方案,其中...
在网页设计中,PNG图像格式因其高质量的透明度支持而被广泛使用,但不同浏览器对PNG透明度的支持程度不一,尤其是旧版本的浏览器,如IE6。标题和描述提到的"ie6 火狐 谷歌 png背景透明",主要涉及到这三种浏览器在...
为了解决IE6中的PNG透明问题,开发者们开发了几种解决方案,其中一种就是使用JavaScript和CSS滤镜技术,即所谓的“吕镜”(AlphaImageLoader)方法。"吕镜"并非一个正式的术语,而是对这种技术的一种形象化的叫法。...
"最好的IE6下png透明图片修复代码"提供了一个解决方案,使得在Internet Explorer 6(IE6)这种老版本浏览器中,也能正确显示具有透明效果的PNG图像。这个问题的核心在于,IE6只支持PNG-8格式的透明,而不支持PNG-24...
这使得在设计网页时,如果希望在IE6下实现半透明效果,就需要采取一些额外的技巧。 1. 使用CSS滤镜(Filter): IE6提供了一种名为`AlphaImageLoader`的CSS滤镜,它可以用来处理PNG24的透明。在CSS中,为需要透明...