css实现的背景透明文字不透明实例代码

快乐打工仔 分类:实例代码

现在透明效果可以说是大行其道,比如鼠标放在图片上的时候会弹出一个半透明的遮罩,上面带有些许说明文字,但是有时候可能会发现上面的说明文字也会出现透明下现象,先看一段代码实例。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>前端教程网</title>
<style type="text/css">
#box
{
  width:100px;
  height:100px;
  margin:0px auto;
  color:red;
  background-color:green;
  text-align:center;
  line-height:100px;
  filter:alpha(opacity=20);
  opacity:0.2; 
}
</style>
</head>
<body>
<div id="box">前端教程网</div>
</body>
</html>

在以上代码中,不但div元素具有般透明性,而且文字也出现了透明效果,这是因为设置透明的属性具有继承性,所以文字也会被设置为半透明,这往往不是我们想要的结果,代码修改如下:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="author" content="http://www.pipipi.net/" />
<title>前端教程网</title>
<style type="text/css">
#main
{
  width:100px;
  height:100px;
  margin:0px auto;
  position:relative;
}
#box
{
  width:100px;
  height:100px;
  background-color:green;
  position:absolute;
  left:0px;
  top:0px;
  filter:alpha(opacity=20);
  opacity:0.2; 
}
#txt
{
  width:100px;
  height:100px;
  position:absolute;
  left:0px;
  top:0px;
  text-align:center;
  line-height:100px;
  color:red;
}
</style>
</head>
<body>
<div id="main">
  <div id="box"></div>
  <div id="txt">前端教程网</div>
</div>
</body>
</html>

以上代码实现了我们的要求,文字不具有透明效果,而div却有透明效果,下面介绍一下它的实现原理。

实现原理:

由于设置透明度相关的属性具有继承性,所以如果设置div透明度以后,它内部的文字也会具有透明度,所以这个时候就需要另辟蹊径,将文字放入另一个单独的div,然后通过定位的方式覆盖于设置透明度的div之上,这样就实现了我们的效果。

回复

我来回复
  • 暂无回复内容