豆豆猫
2008-07-31 11:56
PNG 是可携式网络图像Portable Network Graphics这三个单词的第一个字母的缩写。她和 GIF 一样支持透明背景,但其对透明的处理质量远远大于 GIF,逐渐成为网页制作者非常喜欢的一种图片格式。令人无奈的是,IE(5.5-6) 却不支持 PNG 图片的透明处理,本文介绍的方法就是针对这一问题的。
方法一: 单个透明修复
在html文档的<head></head>之间添加
用例:
方法二: 全体透明恢复
建立文件pngfix.js,内容为
使用方法(建议在<head></head>之间添加):
方法一: 单个透明修复
在html文档的<head></head>之间添加
代码:
<script language="Javascript">
<!--
function fixPNG(myImage)
{
var arVersion = navigator.appVersion.split("MSIE");
var version = parseFloat(arVersion[1]);
if ((version >= 5.5) && (version < 7) && (document.body.filters)) {
var imgID = (myImage.id) ? "id='" + myImage.id + "' " : "";
var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : "";
var imgTitle = (myImage.title) ? "title='" + myImage.title + "' " : "title='" + myImage.alt + "' ";
var imgStyle = "display:inline-block;" + myImage.style.cssText;
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + myImage.width
+ "px; height:" + myImage.height
+ "px;" + imgStyle + ";"
+ "filter:progidXImageTransform.Microsoft.AlphaImageLoader"
+ "(src='./../../\''" + myImage.src + "\', sizingMethod='scale');\"></span>";
myImage.outerHTML = strNewHTML;
}
}
//-->
</script>
<!--
function fixPNG(myImage)
{
var arVersion = navigator.appVersion.split("MSIE");
var version = parseFloat(arVersion[1]);
if ((version >= 5.5) && (version < 7) && (document.body.filters)) {
var imgID = (myImage.id) ? "id='" + myImage.id + "' " : "";
var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : "";
var imgTitle = (myImage.title) ? "title='" + myImage.title + "' " : "title='" + myImage.alt + "' ";
var imgStyle = "display:inline-block;" + myImage.style.cssText;
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + myImage.width
+ "px; height:" + myImage.height
+ "px;" + imgStyle + ";"
+ "filter:progidXImageTransform.Microsoft.AlphaImageLoader"
+ "(src='./../../\''" + myImage.src + "\', sizingMethod='scale');\"></span>";
myImage.outerHTML = strNewHTML;
}
}
//-->
</script>
用例:
代码:
<img src="apple.png" alt="PNG" onload="fixPNG(this)"/>
方法二: 全体透明恢复
建立文件pngfix.js,内容为
代码:
var arVersion = navigator.appVersion.split("MSIE")
var version = parseFloat(arVersion[1])
if ((version >= 5.5 && version < 7) && (document.body.filters)) {
for(var i=0; i<document.images.length; i++) {
var img = document.images[i];
if(img.src) {
var imgName = img.src.toUpperCase();
if (imgName.substring(imgName.length-3) == "PNG") {
var imgID = (img.id) ? "id='" + img.id + "' " : "";
var imgClass = (img.className) ? "class='" + img.className + "' " : "";
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
var imgStyle = "display:inline-block;" + img.style.cssText;
if (img.align == "left") imgStyle = "float:left;" + imgStyle;
if (img.align == "right") imgStyle = "float:right;" + imgStyle;
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle;
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progidXImageTransform.Microsoft.AlphaImageLoader"
+ "(src='./../../\''" + img.src + "\', sizingMethod='scale');\"></span>";
img.outerHTML = strNewHTML;
i--;
}
}
}
}
var version = parseFloat(arVersion[1])
if ((version >= 5.5 && version < 7) && (document.body.filters)) {
for(var i=0; i<document.images.length; i++) {
var img = document.images[i];
if(img.src) {
var imgName = img.src.toUpperCase();
if (imgName.substring(imgName.length-3) == "PNG") {
var imgID = (img.id) ? "id='" + img.id + "' " : "";
var imgClass = (img.className) ? "class='" + img.className + "' " : "";
var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' ";
var imgStyle = "display:inline-block;" + img.style.cssText;
if (img.align == "left") imgStyle = "float:left;" + imgStyle;
if (img.align == "right") imgStyle = "float:right;" + imgStyle;
if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle;
var strNewHTML = "<span " + imgID + imgClass + imgTitle
+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
+ "filter:progidXImageTransform.Microsoft.AlphaImageLoader"
+ "(src='./../../\''" + img.src + "\', sizingMethod='scale');\"></span>";
img.outerHTML = strNewHTML;
i--;
}
}
}
}
使用方法(建议在<head></head>之间添加):
代码:
<!--[if lt IE 7]>
<script defer type="text/javascript" src='./../../&'quot;pngfix.js"></script>
<![endif]-->
<script defer type="text/javascript" src='./../../&'quot;pngfix.js"></script>
<![endif]-->