以下内容转自:http://www.wfuns.com/?p=142
当我们在使用opactity 属性给DIV设置半透明度的时候,DIV下的子元素(标签和文字)都会继承父元素的透明度属性,并且无论我们重置子元素的透明度属性情况都不会发生变化,而这往往不是我们想要看到的效果。
代码设置如下:
//样式
<style type=”text/css”>
.father{height:400px;filter:alpha(opacity=90);-moz-opacity:0.9; -khtml-opacity:0.9; opacity:0.9;background:#000}
.child{height:200px; filter:alpha(opacity=10);-moz-opacity:1; -khtml-opacity:1; opacity:1; background:#f00; }//经测试 无论此处透明度怎么设置,child 都继承了father 的透明度。
</style>
//HTML
<div class=”father”>
<div class=”child”>我透明了吗</div>
</div>
想在CSS3属性规则里rgba 已经可以设置实现父层透明,子层不透明了,知识CSS3 还不能兼容一些比较老版本的浏览器,我们要一些处理:
//样式
<style type=”text/css”>
.father{height:400px;background:rgba(0,0,0,0.6)!important;background:#000;filter:Alpha(opacity=60);}
.child{height:200px; position:relative; }// 此时完美的实现了child 内部元素已经不透明(为了照顾IE7,ie8必须加个position属性让child脱离文本流)
</style>
这个困扰了我很长时间的问题,终于找到了一个好的解决方法,很兴奋的拿出来和大家分享一下,共同进步,共同成长。