如何使父元素透明,子元素不透明

以下内容转自: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>

这个困扰了我很长时间的问题,终于找到了一个好的解决方法,很兴奋的拿出来和大家分享一下,共同进步,共同成长。

posted @ 2016-05-03 12:16  MauriceChans  阅读(2026)  评论(0编辑  收藏  举报