石家庄网站建设公司,网站优化,400电话办理,企业邮箱——明尚互联,石家庄做网站首选

石家庄网站建设公司,网站优化,400电话办理,企业邮箱-明尚互联 石家庄做网站首选

网站建设服务热线
因为专业,所以与众不同

IE6 使用png透明图片的方法 [非JS方法]


石家庄明尚互联网络公司 发布于:2010-05-13 04:13:58  点击:2819  字体:

在IE7和Firefox下肯定没问题!但是到了IE6下透明部分就变成灰色了。

如何使用我们前面说的AlphaImageLoader滤镜呢?很简单代码可以这样写(已top区域为例):

1
2
3
4
5
6
7
                        
.header .top{
 width:1000px;
 height:116px;
 margin-left:auto;
 margin-right:auto;
 filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(
enabled=true, sizingMethod=scale, src
="/wp-content/themes/xilin/images/topbg.png"); }

这样我们在IE6下看效果的时候PNG的透明层就起作用了。但是当我们返回Firefox的时候,PNG的图没了?别急这是因为AlphaImageLoader滤镜是IE系列浏览器的专属标签,Firefox当然不支持了。必须使用background-image属性在Firefox下才起作用:

如果我们这样吧background-image加入到CSS样式中的话,如下:

1
2
3
4
5
6
7
8
                  
.header .top{
 width:1000px;
 height:116px;
 margin-left:auto;
 margin-right:auto;
 background-image:url(/wp-content/themes/xilin/images/topbg.png); 
/* Firefox只支持这个方式 */ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(
enabled=true, sizingMethod=scale, src
="/wp-content/themes/xilin/images/topbg.png"); }

这样我们在IE6下看效果的时候PNG的透明层就起作用了。但是当我们返回Firefox的时候,PNG的图没了?别急这是因为AlphaImageLoader滤镜是IE系列浏览器的专属标签,Firefox当然不支持了。必须使用background-image属性在Firefox下才起作用:

如果我们这样吧background-image加入到CSS样式中的话,如下:

1
2
3
4
5
6
7
8
            
.header .top{
 width:1000px;
 height:116px;
 margin-left:auto;
 margin-right:auto;
background-image:url(/wp-content/themes/xilin/images/topbg.png); 
/* Firefox只支持这个方式 */ filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(
enabled=true, sizingMethod=scale, src
="/wp-content/themes/xilin/images/topbg.png"); }

会发现IE6下的PNG透明效果又没了!这个是因为在IE6background-image也起作用了,在IE6下就有两个图重叠在一起,另一个属性会把灰色部分显示出来,所以我们必须使用一些小技巧,让浏览器只去读属于自己的样式代码。

我们知道FirefoxOpera等完全支持PNG透明图片的浏览器也支持子选择器(>),而IE不识别(包括IE7),所有我们可以通过这来定义Firefox、Opera等浏览器中PNG图片的样式。

代码如下:

1
2
3
4
5
            
html > body .top{ /* for Firefox */
 background-image:url(/wp-content/themes/xilin/images/topbg.png);
 background-repeat: no-repeat;
 background-position: center center;
            }

同时,我们通过只有IE才识别的通配符(∗),来定义IE浏览器中的滤镜。代码如下:

1
2
3
            
* .top{ /* for IE6 */
  _filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(
enabled=true, sizingMethod=scale, src
="/wp-content/themes/xilin/images/topbg.png");
/* 这里在样式前加下划线是为了防止IE7浏览器来读取这个样式 */ }

这样,咱们要的效果就出来了,IE6、IE7、Firefox、Opera浏览器都能很好的显示这些透明图层,而互不干扰。

注意AlphaImageLoader滤镜会导致该区域的链接和按钮无效,解决的办法是为链接或按钮添加:position: relative;这样条代码,使其相对浮动。AlphaImageLoader无法设置背景的重复,所以对图片的切图精度会有很高的精确度要求。

像本BLOG的header中的搜索部分一样,大家可以自己去测试一下效果,我也都不多说了,简单的写一下只是起个抛砖引玉的效果,如果大家有更好的办法,希望能拿出来一起分享!

https://www.hiheb.cn/
最新案例
建站套餐
明尚最新动态
手机:19033292827
首页  套餐  服务  案例  关于  留言  联系  新闻
返回头部
联系我们
Contact
QQ咨询623900980  QQ咨询81457951
业务咨询:19033292827
地址:河北省石家庄市长安区古城西路汇春博物园
Copyright © 2007-2024 石家庄明尚信息技术有限公司
备案编号:冀ICP备12016215号-2 冀公网安备13010502002383号
业务范围:石家庄网站建设 石家庄网站优化 石家庄网站制作 石家庄做网站 石家庄建网站 石家庄建站 石家庄网页设计