1.css3新增的一个属性rgba,语法
R:红色值。正整数 | 百分数
G:绿色值。正整数 | 百分数
B:蓝色值。正整数| 百分数
A:透明度。取值0~1之间
2.设置透明度是不会被继承的,所以不用头疼继承的问题.字体透明度便设置成color:rgba(0,0,0,0.5)边框:border:5px solid rgba(0,0,0,0.5)或者背景都可以。
3.兼容性。支持ie9及以上的浏览器
4.css2中opacity制作背景色通常用到,可是要用他来制作边框色或都说前景色的话,那他就有心无力了。
5.二者区别opacity后代元素会随着一起具有透明性,所以我们Opacity中的字随着透明值下降越来越看不清楚。但是rgba不存在这种问题。
6.比如做一个背景的透明度,那么
<style>.div{background:rgba(0,0,0,0.5)width:100pxheight:100pxcolor:red}
.div1{background:#000width:100pxheight:100pxcolor:rgba(255,255,255,0.5)}
</style>
<div class="div">
我是文字
</div>
<div class="div1">
我是变透明的文字
</div>
文字不会被影响的。
7.如果需要设置字体的透明度,可以对color的rgba属性进行设置。
设置元素的透明度:-moz-opacity:0.8/*在Firefox中设置元素透明度
filter: alpha(opacity=80)/*ie使用滤镜设置透明
但是当我们对一个标签设置背景的透明度时,往往我们并不希望该标签上的文字图片也变成半透明了。
例如:
<div><p>不透明</p></div>
div{-moz-opacity:0.3filter:alpha(opacity=30)background:#000width:500px
height:500pxcolor:#F30font-size:32pxfont-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:#000filter:Alpha(opacity=20)/*实现IE背景透明*/
width:500pxheight:500pxcolor:#F30font-size:32pxfont-weight:bold}
div p{ position:relative}/*实现IE文字不透明*/