2023年6月21日发(作者:)

CSS通过RGBa将⼀个元素设置为透明效果RGBa是⼀种在CSS中声明包含透明效果的颜⾊的⽅法,它的语法是这样的:

复制代码代码如下:div {

background: rgba(200, 54, 54, 0.5);

}

它允许我们为元素添加透明⾊。或许我们习惯了使⽤”opacity“,它很简单易⽤,但是,opacity会使所有的⼦元素都变成透明的,⽽且很难去解决这个问题。(除⾮使⽤怪异的定位hack) 跨浏览器透明同样颇为棘⼿。

通过RGBa,我们可以将⼀个元素设置为透明,⽽不会影响其⼦元素:

声明⼀个保留颜⾊

并⾮所有的浏览器⽀持RGBa,所以如果允许的话,可以声明⼀个保留⾊彩。这个⾊彩应该是可靠的——所有的浏览器都⽀持。不声明就意味着,在不⽀持RGBa的浏览器⾥⾯,没有使⽤颜⾊。

复制代码代码如下:div {

background: rgb(200, 54, 54); /* The Fallback */

background: rgba(200, 54, 54, 0.5);

}

不过,这条退路在某些古董级浏览器中依然⽆效。

RGBa的浏览器⽀持情况

上⾯的数据是通过测试demo得到的,该测试页⾯包含了更多更完整的浏览器兼容性列表。

对IE浏览器的更好的退路

因为IE浏览器⽀持条件注释,我们可以抛弃RGB并使⽤IE的⼀个私有CSS滤镜来实现同样的效果:

复制代码代码如下:

2023年6月21日发(作者:)

CSS通过RGBa将⼀个元素设置为透明效果RGBa是⼀种在CSS中声明包含透明效果的颜⾊的⽅法,它的语法是这样的:

复制代码代码如下:div {

background: rgba(200, 54, 54, 0.5);

}

它允许我们为元素添加透明⾊。或许我们习惯了使⽤”opacity“,它很简单易⽤,但是,opacity会使所有的⼦元素都变成透明的,⽽且很难去解决这个问题。(除⾮使⽤怪异的定位hack) 跨浏览器透明同样颇为棘⼿。

通过RGBa,我们可以将⼀个元素设置为透明,⽽不会影响其⼦元素:

声明⼀个保留颜⾊

并⾮所有的浏览器⽀持RGBa,所以如果允许的话,可以声明⼀个保留⾊彩。这个⾊彩应该是可靠的——所有的浏览器都⽀持。不声明就意味着,在不⽀持RGBa的浏览器⾥⾯,没有使⽤颜⾊。

复制代码代码如下:div {

background: rgb(200, 54, 54); /* The Fallback */

background: rgba(200, 54, 54, 0.5);

}

不过,这条退路在某些古董级浏览器中依然⽆效。

RGBa的浏览器⽀持情况

上⾯的数据是通过测试demo得到的,该测试页⾯包含了更多更完整的浏览器兼容性列表。

对IE浏览器的更好的退路

因为IE浏览器⽀持条件注释,我们可以抛弃RGB并使⽤IE的⼀个私有CSS滤镜来实现同样的效果:

复制代码代码如下: