首页 > 网页设计

PNG透明背景的多种方法

发布时间:2010-08-19 09:51:33 来源:星知苑 作者:星之宇

用photoshop制作透明背景的PNG图片,直接另存为.png格式的图片,IE7.0,Firefox可以正确识别,但是IE6.0出现问题,png透明针对IE6一直是件挺麻烦的事情。

要实现IE6.0透明背景方法多种多样,现在来介绍几种:

第一种方法:(photoshop法)
photoshop制作好了图片,保存时要选择 另存为web所有格式(ctrl+alt+shift+s) 这个保存才行[break]
PNG图片另存为 PNG-8,256色 的格式 存储就可以了。

第二种方法:(css法)
定义一个样式,给某个div应用这个样式后,div的透明png背景图片自动透明了。(注意两处图片的路径写法不一样,本例中,test.png图片与html文件在相同目录)
css:
.pngs {
height: 100px;width: 100px;
background-image:url(test.png)!important;  /* FF IE7 */
background-repeat: no-repeat; _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=’test.png’);  /* IE6*/
_ background-image: none; /* IE6 */
}

xhtml:
 
这种方法的优点就是使用简单方便,但是不能作为背景,且只能用作单个png图片的使用。如果要作为背景,需要新增加一个div层,并设置其position:relative;

css
.png div{position:relative;}

xhtml:

 

<div class='png'><div>

 



CSS PNG透明背景问题解决方法


这种方法可以使用在那些png图片不多,且不需要repeat的情况下。

第三种方法:(js法)
<script language="JavaScript">
function correctPNG() // correctly handle PNG transparency in Win IE 5.5 & 6.
{
    var arVersion = navigator.appVersion.split(“MSIE")
    var version = parseFloat(arVersion[1])
    if ((version >= 5.5) && (document.body.filters))
    {
       for(var j=0; j<document.images.length; j++)
       {
          var img = document.images[j]
          var imgName = img.src.toUpperCase()
          if (imgName.substring(imgName.length-3, imgName.length) == “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:progid:DXImageTransform.Microsoft.AlphaImageLoader"
             + “(src=’" + img.src + “’, sizingMethod=’scale’);"></span>"
             img.outerHTML = strNewHTML
             j = j-1
          }
       }
    }    
}
window.attachEvent(“onload", correctPNG);
</script>
这种js先判断是否IE,然后判断ie版本,版本在6.0下则判定函数,给png的图片添加滤镜。
使用起来的确方便,无论多少图片都可以解决,但是依然无法repeat。
 

相关合集

  • 小森生活攻略大全小森生活所有攻略汇总
小森生活攻略大全小森生活所有攻略汇总

简介:很有爱也是很治愈的一款休闲农家生活的养成游戏,小编是个人认为会成为年度的最佳的手游之一,很多的新手还有玩家刚开始还是对里面的一些玩法还有各种友好度等很多的问题需要答案,本站大神玩家解答了很多的游戏教程以及各类问题的解答整理分享给你,就是为了能够让你在这款游戏中获得更多的收获。