本例是一个兼容IE6/IE7/IE8和火狐浏览器的css实现半透明层效果,之前本人也遇到过这样的问题,就是把一个层设置半透明后,内的文字也跟着半透明了,一直没找到合适的解决办法,今天看到designcss.org有一篇文章解决了这个问题,但有一点,发现在filter前边多加一个星号,多加个星号是为了让IE6和IE7执行,火狐和IE8就不执行了,火狐本身来讲就不支持IE特有的滤镜功能,所以这里没必要再加星号。还有就是不支持IE8浏览器,经过研究,查阅大量资料,终于找到解决办法了,下面分享出来。
css用到的\9是css hack的写法,是为了兼容不同的浏览器而使用的
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
5 <title>兼容ie6,ie7以及firefox的css透明滤镜,文字不继承其透明属性</title>
6 <style type="text/css">
7 #container{ border:1px solid #c00; background-color:rgba(212,0,0,0.5); background:#f00\9; filter:alpha(opacity=50); width:500px; margin:40px auto; line-height:200%; font-size:14px; padding:14px;}
8 #container *{ position:relative;}
9 </style>
10 </head>
11 <body>
12 <div id="container">
13 <span>我是内容我是内容我是内容我是内容我</span>
14 </div>
15 </body>
16 </html>