关于CSS 透明度,有一点需要注意的是,它虽然使用了很多年,但它一直以来都不是一个标准属性。它是一种非标准技术,应该是CSS3规范的一部分。
一、旧的opacity设置
以下代码是firefox和safari旧版本所需的透明度设置:
代码如下
复制代码
#myelement {-khtml-opacity: .5;-moz-opacity: 0.5;}
-khtml-opacity设置是针对旧版本的webkit渲染引擎,这种专用属性现在已经过时了,除非你还有需要兼容safari 1.x.的用户。
第二行使用专用属性 -moz-opacity是 为了兼容mozilla渲染引擎的早期版本,以及追溯到netscape navigator。firefox 0.9以后就不要求使用-moz-opacity属性,firefox 3.5(现在使用gecko引擎)已经不在支持这个属性。
二、在firefox, safari, chrome和opera下的css透明度
以下代码是除了ie外的所有当前浏览器的最简单,最最新的不透明度设置的css语法:
代码如下
复制代码
#myelement { opacity: .7; }
上述语法将设置一个元素为70%不透明(或30%透明)。设置opacity:1将使元素不透明,而设置opacity:0将使得元素完全不可见。你 只要记装opacity”等同于“不透明”就很容易记住了,opacity值越小就越接近透明。
opacity属性可以精确地小数点后两位,所以值劝.01”和“.02”实际上是不同的,虽然可见度很难被发觉。一般情况下,精确到一位就可以了,取值如“.3”或“.7”。
三、ie下的css透明度
ie下照旧有别于其他浏览器,并且目前也有三个不同版本的ie在广泛使用,透明度设置是不同的,有时需要额外的css来控制:
代码如下
复制代码
#myelement {filter: alpha(opacity=40);}
上面的css使用专用的filter属性来设置ie6-8透明度。对于ie6和ie7需要注意:为了使得透明设置生效,元素必须是“有布局”。一个元素可以通过使用一些css属性来使其被布局,有如width 和 position。关于微软专有的haslayout属性详情,以及如何触发它,欢迎参考111cn.net相关文档。
另外一个设置ie8的css透明度的方法语法如下(注意注释中指出的版本):
1 2 3