这两天碰到的几个用.png做背景图片的问题确实让人头疼!

现在做下总结:
 
 首先 将一张.png的透明图片作为背景图片显示:
#div1 {
     height: 600px;
     width: 260px;
     padding: 20px;
     background: url(../images/weddinga.png);
}
但是会发现在IE6下PNG图片的透明效果却没有出现,通过百度,知道了必须要再针对IE写个样式——为IE加个滤镜:
 
* html .weddinga
{
background: none;
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled="true", sizingMethod="corp", src="绝对路径/images/weddinga.png");    (使用绝对或相对URL地址引用背景图像:注:有时会出现引用不到背景图片的问题,解决方法:1、建议使用绝对路径引用图片;2、使用户相对路径时需注 意,该路径应该是相对于HTML文件的相对路径,而不是相对于CSS文件的相对路径。比 如:imagesaa.gif;cssdemo.css;demo.html;demo.css文件中的图片引用路径就应该为 “images/aa.gif”,而不是“../images/aa.gif”)
}
 
OK,现在用png做透明背景的效果已经实现了.
 
不过,再接下来的工作中,意外的发现滤镜会导致该区域的链接在IE6中失效.
再次进行百度,看到大家都推荐的解决方法是给链接加上"position: relative;"的代码,使其相对浮动.
然后我给a链接或#div1中包含a链接的容器通通加上了position: relative; 问题解决.
方法二:
 将显示背景图片的层与层里的内容独立排版,通过对这两个层设置绝对定位,以及设置Z-index,
让两个层重合(也就是让显示内容的层浮在显示背景图片的层上方的效果)
例如:
  原代码:
  
  当前容器中要显示的内容
  
  改动后:
  
  
原来被 #div1容器包含的内容,现在将内容独立出来,并通过绝对定位浮在背景层上面
  
(附: 2010-09-30更新 —— 关于解决IE6下PNG图片的问题,还有一个更好的解决方法:
通过引用DD_belatedPNG_0.0.8a-min.js,再将指定的PNG图片或样式名称通过参数形式传入方法中,即可实现;
       比如:
<!--[if IE 6]>
<script src="DD_belatedPNG_0.0.8a-min.js"></script>
<script>
   DD_belatedPNG.fix('.png_style1, .png_style2');
</script>
<![endif]--> 
        具体可参见此网站
 )
--------------------------------
下面补充下关于滤镜的语法(下面摘自猫嗔的博客)
 
引用内容
语法:
filter : progid:DXImageTransform.Microsoft.AlphaImageLoader ( enabled=bEnabled , sizingMethod=sSize , src=sURL ) 
属性:
enabled : 可选项。布尔值(Boolean)。设置或检索滤镜是否激活。true | false 
      true : 默认值。滤镜激活。 
      false : 滤镜被禁止。 
 
sizingMethod : 可选项。字符串(String)。设置或检索滤镜作用的对象的图片在对象容器边界内的显示方式。 crop : 剪切图片以适应对象尺寸。 
        image : 默认值。增大或减小对象的尺寸边界以适应图片的尺寸。 
        scale : 缩放图片以适应对象的尺寸边界。 
        src : 必选项。字符串(String)。使用绝对或相对 url 地址指定背景图像。假如忽略此参数,滤镜将不会作用。 
 
说明:
在对象容器边界内,在对象的背景和内容之间显示一张图片。并提供对此图片的剪切和改变尺寸的操作。如果载入的是PNG(Portable Network Graphics)格式,则0%-100%的透明度也被提供。
PNG(Portable Network Graphics)格式的图片的透明度不妨碍你选择文本。也就是说,你可以选择显示在PNG(Portable Network Graphics)格式的图片完全透明区域后面的内容。
posted on 2011-11-23 13:34  黑妞haha  阅读(2401)  评论(0编辑  收藏  举报