先说下css透明的方式,今天不做ie的滤镜处理(欢迎小伙伴们评论去补充兼容)
主要是看RGBA和Opacity
先来简单看看RGBA:
语法
rgba(r,g,b,a)
取值说明
R:红色值。正整数 | 百分数
G:绿色值。正整数 | 百分数
B:蓝色值。正整数 | 百分数
A:Alpha透明度。取值0~1之间。
正整数为十进制0~255之间的任意值,百分数为0%~100%之间的任意值。
RGBA是在R(Red)G(Green)B(Blue)模式上增加了alpha通道,alpha通道是不透明度,即,如果一个元素的alpha通道数值为0%(或0),那该元素就是完全透明的(也就是看不见的,但是可以透过该元素看到该元素下的元素),数值为100%(或255)时则意味着该元素完全不透明。
再来看看Opacity:
语法
opacity: value|inherit;
取值说明
value:不透明度,从 0.0 (完全透明)到 1.0(完全不透明)。
区别
opacity会继承父元素的 opacity 属性,而RGBA设置的元素的后代元素不会继承不透明属性。
.rgba{
background: rgba(255,0,0,0.5);
}
.opacity{
background: red;
opacity: 0.5;
}
从图上可以看到,给div设置Opacity属性的里面的文本也是半透明的,而给div设置RGBA属性的里面的文本并没有继承透明性。
注:该实例RGBA和Opacity的不透明度取值均为0.5.