CSS 设置背景透明度,不影响子元素


由于 opacity 属性能被子元素继承,使用它设置父元素背景透明度时也会影响子元素.

解决方法:

1> 使用 RGBA

Example

1 .classname {
2     /* RGBa, 透明度0.6 */
3  background: rgba(0, 0, 0, 0.6);
4 }

2> 使用 opacity, 设置一个背景DIV,此DIV使用绝对布局

Example

1 <div class="demo"> 2  <div class="demo-bg"></div><!-- 透明背景 --> 3  <div class="demo-txt">Content here</div><!-- 不透明文字 --> 4 </div>

Demo

 1 <!DOCTYPE html>
 2 <html>
 3 <head>
 4 <meta charset="utf-8">
 5 <title>opacity</title>
 6 <style>
 7 *{
 8  padding: 0;
 9  margin: 0;
10 }
11 body{
12  padding: 50px;
13  background: url(http://static.cnblogs.com/images/logo_small.gif) 0 0 repeat;
14 }
15  
16 .demo{
17  width: 200px;
18  height: 200px;
19  position: relative;
20 }
21 .demo-bg{
22  position: absolute;
23  left: 0;
24  top: 0;
25  z-index: 0;
26  width: 200px;
27  height: 200px;
28  background-color:#000000;
29  filter:Alpha(opacity=50);
30  background-color: rgba(0,0,0,0.5);
31 }
32 .demo-txt{
33  position: relative;
34  z-index: 1;
35  color: #FFFFFF;
36 }
37 </style>
38 </head>
39 <body>   
40  
41 <div class="demo">
42     <div class="demo-bg"></div><!-- 透明背景 -->
43     <div class="demo-txt">Content here</div><!-- 不透明文字 -->
44 </div>
45  
46 </html>
View Code

3> 建立一个24位PNG背景图片

不推荐,IE下24位PNG图透明时引起的内存泄漏.

SEE ALSO

CSS实现背景透明完美解决方案
CSS实现背景透明,文字不透明,兼容所有浏览器


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM