IE, FireFox, Opera 浏览器支持Alpha透明的方法

先请看如下代码:
filter:alpha(opacity=50);       /* IE */
-moz-opacity:0.5;              /* Moz + FF */
opacity: 0.5;           /* 支持CSS3的浏览器(FF 1.5也支持)*/

简单解释,IE使用私有属性filter:alpha(opacity),Moz Family使用私有属性-moz-opacity,而标准的属性是opacity(CSS 3, Moz Family部分支持CSS3)。后面的数值是透明度,使用百分比或者小数(alpha(opacity))使用大于0小于100的数值,其实也是百分比)。

从上面的代码中你没有看到Opera。没错,Opera还未支持标准的opacity从Opera9开始支持CSS3的opacity了,也没有其私有的可支持Alpha透明的属性。

但是,我们知道,Opera是支持Alpha透明的PNG图片的(当然Moz Family也支持)。所以我们可以使用背景图片来实现Alpha透明效果。

例子:http://www.omemo.net/neo/lab/alpha/

关键在于:

background: transparent url(alpha80.png) left top repeat!important;
background: #ccc;
filter:alpha(opacity=50);

既然Moz Family支持Alpha透明的PNG,所以我们没有必要使用其私有属性了。当然,你可以使用标准的opacity,但别同时使用Alpha透明图片和opacity,这样的话就成了两者的混合了。你可以把上面的例子下载过来,然后/*opacity: .5;*/的注释看看。

这部分内容来自于:http://www.omemo.net/neo/blog/?p=87

2、如想实现父标签透明,而子标签不透明,采用对于采用png透明的父标签来说不存在问题,如果采用alpha值无论ie还是非ie都存在这样的问题,css声明了position透明标签包含的内容都透明。

例如:

<div id="out"><div id="in">不透明<div><div>
out{
position: absolute;
top:0;
left: 0;
width: 100%;
background:url(../img/alpha30.png);/*非ie*/
filter:alpha(opacity=30);/*ie*/
}
in{
background:#fff
}

这个时候看到in也是透明的

hack方法:增加一个子标签,采用css hack 使其在ie下充满整个父标签,并使其透明,由于透明部分和不透明部分是兄弟关系,所以不影响。

<div id="out"><div id="in">不透明<div><div id="ie">不透明<div><div>
out{
position: absolute;
top:0;
left: 0;
width: 100%;
background:url(../img/alpha30.png);
z-index: 100;
}
in{
background:#fff
}
*html out{
background:out;
}
*html ie{
position: absolute;
top:0;
left: 0;
width: 100%;
height:100%;
background:url(../img/alpha30.png);
filter:alpha(opacity=30);
z-index: -1;/*让其位于in的下面*/
}
赞(0) 打赏
未经允许不得转载:WEB前端开发 » IE, FireFox, Opera 浏览器支持Alpha透明的方法

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

前端开发相关广告投放 更专业 更精准

联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏