当前位置: 首页 > Web前端 > CSS

css透明度的rgba和opacity的区别和兼容性

时间:2023-03-31 11:20:33 CSS

设置透明度,我们有两个可选的css3属性:rgba和opacityopacity用法:#box{background-color:rgb(125,25,0);opacity:0.5}IE9、Firefox、Chrome、Opera和Safari使用属性opacity来设置透明度。opacity属性可以设置为0.0到1.0之间的值。值越小,越透明。IE8及更早版本使用过滤器filter:alpha(opacity=x)。x可以取0到100之间的值,值越小越透明。所以如果项目兼容IE8及以下,需要写两段代码#box{background-color:rgb(125,25,0);不透明度:0.5;过滤器:alpha(不透明度=50);/*forIE8及更早版本*/}RGBA用法:#box{background-color:rgba(0,0,0,.5);}RGBA颜色值是RGB颜色值的扩展,带有alpha通道——它指定不透明度的对象。以下浏览器支持RGBA颜色值:IE9+、Firefox3+、Chrome、Safari和Opera10+。RGBA颜色值是这样指定的:rgba(red,green,blue,alpha)。alpha参数是介于0.0(完全透明)和1.0(完全不透明)之间的数字。那么对于IE8及以下,需要做如下兼容:#box{filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr=#80000000,endColorStr=#80000000);}其中:#88000000控件的前两位透明度,取值为16基本系统从00->FF(颜色越小越透明),00表示完全透明,FF表示完全不透明,最后六位是颜色值。※注意:如果在IE9中同时使用两种RGBA方式,会造成冲突,无法实现透明。至于opacity,两者可以写在一起,不存在冲突问题!opacity和rgba的区别为此,我们设置两个box作为对比HTML代码:

box1-opacity演示效果
box2-rgba演示效果
csscode:#box1{width:100px;高度:100px;颜色:黑色;背景颜色:rgb(125,25,0);不透明度:0.5;}#box2{顶部边距:10px;宽度:100px;高度:100px;颜色:黑色;背景色:rgba(125,25,0,.5);}.pane{宽度:20px;高度:20px;background-color:red;}结果如图:从上面的结果可以看出,opacity可以影响字体和红色小方块的透明度,而rgba则不会。表示子元素会继承父元素的opacity属性