css实现背景透明文字不透明

设置元素的透明度:
 -moz-opacity:0.8; /*在Firefox中设置元素透明度
 filter: alpha(opacity=80); /*ie使用滤镜设置透明
 
但是当我们对一个标签设置背景的透明度时,往往我们并不希望该标签上的文字图片也变成半透明了。
 
例如:
 <div><p>不透明</p></div>
 
div{-moz-opacity:0.3;filter:alpha(opacity=30);background:#000;width:500px;
 height:500px;color:#F30; font-size:32px; font-weight:bold; }
 
可以很明显的看出文字也被半透明的,这是我们不想看到的效果。
 以前我曾经是绝对定位的方法解决这个问题,也就是现在的p并不是div的子元素。
 
<div></div>
 <p>不透明</p>
 
这样div的半透明效果也就不会影响到元素p了。最后在将p定位到需要的位置。
 但是很多时候这样的标签并不是很合理,有可能还会多浪费几个标签。
 
下面的这种方法就可以解决上面的问题了:
 div{background:rgba(0,0,0,0.2) none repeat scroll !important; /*实现FF背景透明,文字不透明*/
background:#000; filter:Alpha(opacity=20);/*实现IE背景透明*/ 
 width:500px; height:500px; color:#F30; font-size:32px; font-weight:bold;}
 div p{ position:relative;}/*实现IE文字不透明*/
 
火狐我们直接用rgba颜色就可以解决子标签跟着半透明的问题了,但是ie还不是能很好的支持。
 所以我们给不想被透明的标签设置一个定位属性,问题接能解决了。
 
------------------------------------------------------------------------------------------------
 

在 FF/Chrome 等较新的浏览器中可以使用css属性background-color的rgba轻松实现背景透明,而文字保持不透明。而IE6/7/8浏览器不支持rgba,只有使用IE的专属滤镜filter:Alpha来实现,但是这样写法会把文字也变为透明,因此只有在透明容器的子节点(文本节点除外)内设置position:relative才能不继承其父元素的透明滤镜,代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Web开发者网络 - www.admin10000.com</title> 
<style type="text/css">
.warp{ background:#eee url(back.jpg) no-repeat left top; width:440px;height:400px;    border:1px solid #ccc;}
.content { width:180px; height:260px; margin:0px auto; padding:30px 30px;background:rgba(255, 255, 255, 0.6)!important;
filter:Alpha(opacity=60); background:#fff; /* 使用IE专属滤镜实现IE背景透明*/ }
.content p{ position:relative;} /*实现IE文字不透明*/ 
</style> 
</head> 
<body> 
<div class="warp"> 
<div class="content"><p>Admin10000.com 是WEB开发者学习交流必备网站。Admin10000.com 是WEB开发者学习交流必备网站。Admin10000.com 是WEB开发者学习交流必备网站。Admin10000.com 是WEB开发者学习交流必备网站。Admin10000.com 是WEB开发者学习交流必备网站。Admin10000.com 是WEB开发者学习交流必备网站。</p></div> 
</div> 
</body> 
</html> 
 

以上代码在IE6.0+/FF3.0+/Opera10+/Chrome/Safari 均测试通过

posted @ 2013-05-09 13:06  zagelover  阅读(242)  评论(0编辑  收藏  举报