IE, FireFox, Opera 浏览器支持CSS实现Alpha半透明的方法
来源:互联网 发布:邮箱反查域名 编辑:程序博客网 时间:2024/06/05 07:57
这个世界变化很快,IE8也快出来了,它将不在支持以前{filter:alpha(opacity=50);}的私有属性,转而支持更规范的私有属性-ms-filter: “progid:DXImageTransform.Microsoft.Alpha(Opacity=50)”;加之Firefox2.0和Opera9.0以前版本很少见到,所以所有的主流浏览器都已经支持纯CSS而不用png图片来实现半透明效果,代码是:
<div id="out">
<div id="in">不透明<div>
<div id="alpha">半透明<div>
<div>
<style type="text/css">
#out{
padding:20px 0;
height:100px;
width:200px;
position:relative;
}
#in{
background:#fff;
margin:0 10px;
}
#alpha{
position: absolute;
top:0;
left: 0;
width: 100%;
height:100%;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; /*IE8*/
filter:alpha(opacity=30); /*IE5、IE5.5、IE6、IE7*/
opacity: .3; /*Opera9.0+、Firefox1.5+、Safari、Chrome*/
z-index: -1; /*让其位于in的下面*/
background:#fff;
}
</style>
请看演示Demo
—————————-以上内容2008.12.15更新,下面内容已经过时,仅为参考—————————-
1、对于IE使用filter,对于非IE浏览器使用png背景图填充
先请看如下代码:
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的数值,其实也是百分比,但是需要注意的是,IE下使其私有属性生效必须触发其hasLayout,比如设置容器宽度,最通用的方案是{zoom:1}。)。
从上面的代码中你没有看到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:none;
}
*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的下面*/
background:#fff
}
<div id="out">
<div id="in">不透明<div>
<div id="alpha">半透明<div>
<div>
<style type="text/css">
#out{
padding:20px 0;
height:100px;
width:200px;
position:relative;
}
#in{
background:#fff;
margin:0 10px;
}
#alpha{
position: absolute;
top:0;
left: 0;
width: 100%;
height:100%;
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"; /*IE8*/
filter:alpha(opacity=30); /*IE5、IE5.5、IE6、IE7*/
opacity: .3; /*Opera9.0+、Firefox1.5+、Safari、Chrome*/
z-index: -1; /*让其位于in的下面*/
background:#fff;
}
</style>
请看演示Demo
—————————-以上内容2008.12.15更新,下面内容已经过时,仅为参考—————————-
1、对于IE使用filter,对于非IE浏览器使用png背景图填充
先请看如下代码:
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的数值,其实也是百分比,但是需要注意的是,IE下使其私有属性生效必须触发其hasLayout,比如设置容器宽度,最通用的方案是{zoom:1}。)。
从上面的代码中你没有看到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:none;
}
*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的下面*/
background:#fff
}
- IE, FireFox, Opera 浏览器支持CSS实现Alpha半透明的方法
- IE, FireFox, Opera 浏览器支持CSS实现Alpha半透明的方法
- IE, FireFox, Opera 浏览器支持CSS实现Alpha半透明的方法
- IE, FireFox, Opera 浏览器支持CSS实现Alpha半透明的方法
- IE, FireFox, Opera 浏览器支持CSS实现Alpha半透明的方法
- IE, FireFox, Opera 浏览器支持CSS实现Alpha透明的方法 兼容问题
- IE, FireFox, Opera 浏览器支持CSS实现Alpha透明的方法 兼容问题
- IE, FireFox, Opera 浏览器支持Alpha透明的方法
- 在IE,Firefox,Opera下实现图象Alpha透明的方法
- jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
- 用 CSS 实现 Firefox 和 IE 都支持的 Alpha 透明效果
- 用 CSS 实现 Firefox 和 IE 都支持的 Alpha 透明效果
- 用 CSS 实现 Firefox 和 IE 都支持的 Alpha 透明效果
- CSS完全兼容IE/FireFox/Opera的方法
- [原创]实现与服务器时间同步的跨平台JS脚本 支持IE , firefox , Opera ,Netscape 等主流浏览器
- firefox和IE都支持的半透明
- Beta版浏览器的战争:IE 7 beta 2 V.S. Firefox 2 alpha 1 V.S.Opera beta1 [英文]
- 禁止浏览器后退的一种实现方法,在IE, Firefox, Safari, Chrom 和 Opera上测试通过
- mmap详解
- 手把手教你把Vim改装成一个IDE编程环境(图文)
- php Ajax Post 传值
- Jboss中间件安全设计方案
- Android异步加载图像(含线程池,缓存方法)
- IE, FireFox, Opera 浏览器支持CSS实现Alpha半透明的方法
- struts2保存图片
- 安装SDK遇到的问题Setup cannot be run in Program Compatibility Mode
- Linux下如何删除以~开头的文件
- 动态光源效果,光源跟着鼠标走
- FreeMaker一篇通
- 收藏js
- MM_jumpMenu弹出新窗口
- 面经进行时(一)