首页 > Web开发 > 详细

CSS通过RGBa将一个元素设置为透明效果

时间:2015-12-02 15:59:02      阅读:274      评论:0      收藏:0      [点我收藏+]
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);
}</code>


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

RGBa的浏览器支持情况

技术分享 

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

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


复制代码
代码如下:

<!--[if IE]>
<style type="text/css">
.color-block {
background:transparent;
filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000050,endColorstr=#99000050);
zoom: 1;
}
</style>
<![endif]-->

CSS通过RGBa将一个元素设置为透明效果

原文:http://www.jb51.net/css/149342.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!