快捷导航
查看: 2095|回复: 2

如何设置div的透明度但是其中的文字不透明

[复制链接]
发表于 2012-11-28 08:00:30 | 显示全部楼层 |阅读模式
如何设置div的透明度但是其中的文字不透明:
建议:尽可能的手写代码,可以有效的提高学习效率和深度。
CSS如何设置div背景透明度且兼容性良好一章节介绍过如何设置一个对象的透明度,但是还是存在一个缺陷,那就是对象中的文字也被产生了透明现象,也不能说事缺陷,也可能有时候需要这样的效果。这里就介绍一下如何将对象设置为透明效果,但是文字不透。代码实例如下:
[HTML] 纯文本查看 复制代码运行代码

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
*{
  margin:0px;
  padding:0px;
}
.opacity{
  width:150px;
  height:150px;
  background-color:green;
  filter:alpha(opacity=50);
  -moz-opacity:0.5;
  opacity:0.5;
  margin-left:20px;
  margin-top:20px;
}
span{
  display:block;
  width:80px;
  height:80px;
}
</style>
</head>
<body>
  <div class="opacity">  
    <span>蚂蚁部落</span>  
  </div>
</body>
</html>

上面的代码将第二个div设置为半透明,但是文字也出现了透明现象。那么这里改造一下代码:
[HTML] 纯文本查看 复制代码运行代码

<!DOCTYPE html>
<html>
<head>
<meta charset=" utf-8">
<meta name="author" content="http://www.softwhy.com/" />
<title>蚂蚁部落</title>
<style type="text/css">
*{
  margin:0px;
  padding:0px;
}
.opacity{
  width:150px;
  height:150px;
  background-color:green;
  filter:alpha(opacity=50);
  -moz-opacity:0.5;
  opacity:0.5;
  margin-left:20px;
  margin-top:20px;
}
span{
  display:block;
  width:80px;
  height:80px;
  position:absolute;
  top:20px;
  left:20px;
}
</style>
</head>
<body>
  <div class="opacity"></div>
  <span>蚂蚁部落</span>  
</body>
</html>

以上代码实现了需要的效果。方法就是讲span元素从div取出来,使用绝对定位的方式,再将span元素定位到原来在div元素的位置。
如果不考虑浏览器兼容性可以参阅
CSS3 RGBA一章节。
发表于 2017-9-6 18:43:50 | 显示全部楼层
1、opacity属性会修改背景和内容的透明度;子元素再重新设置opcity 也无效

2、background:rgba()里的a是只修改背景的透明度:内容没有影响
发表于 2017-9-21 08:36:16 | 显示全部楼层
yuantingjun 发表于 2017-9-6 18:43
1、opacity属性会修改背景和内容的透明度;子元素再重新设置opcity 也无效

2、background:rgba()里的a是 ...

现在推荐使用RGBA方式,快捷

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们|手机版|小黑屋| ( 鲁ICP备10022556号-3 )

GMT+8, 2017-10-19 02:27 , Processed in 0.082025 second(s), 20 queries .

Powered by Discuz! X3.2 Licensed

Copyright © 2012-2017 Design: 蚂蚁部落

快速回复返回顶部 返回列表