当前位置: 首页 > 图文教程 > 网页制作 > CSS样式表 > RGBa色彩的浏览器支持分析

CSS样式表
CSS教程:dl dt dd模拟表格实例
网页制作实例:将PSD网站模板转换为XHTML+CSS网页
CSS布局实例代码:两列布局实例
border:none;与border:0;的区别
CSS浮动定位:引起文本重影的怪异问题
同一张PNG8图片为何部份图标在IE6中消失
IE6中背景属性加a与a:hover问题
网页制作教程:在IE7中的网页文本重影问题
推动浏览器更新的原因和方法
CSS实例教程:制作网页列表菜单
CSS实例教程:制作网站横向导航
CSS实例教程:制作网页2级导航
CSS研究教程:类名的长命名和短命名
CSS教程:彻底弄清楚CSS的行高属性
用CSS的float和clear属性进行三栏网页布局
没有JS只用CSS制作的网页下拉菜单
初学CSS的基础教程:在网页中使用CSS
网页制作教程:制作拖拽翻页
制作网页时编写CSS代码的25个小技巧
CSS3中很有用的特性:CSS阴影

CSS样式表 中的 RGBa色彩的浏览器支持分析


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2010-01-20   浏览: 101 ::
收藏到网摘: n/a

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的浏览器支持情况

浏览器,版本,操作系统 测试结果 退路
Firefox 3.0.5 (OS X, Windows XP, Vista) 支持
Firefox 2.0.0.18 (PC) 不支持 纯色
Safari 4 (Developer Preview, Mac) 支持
Safari 3.2.1 (PC) 支持
Mobile Safari (iPhone) 支持
Opera 9.6.1 不支持 纯色
IE 5.5 (PC via IETester) 不支持 无色
IE 6 (PC via IETester) 不支持 纯色
IE 7 不支持 纯色
IE 8 beta 2 不支持 纯色
Google Chrome 1.0.154.43 支持
Google Chrome 1.0.154.46 支持
Netscape 4.8 (PC) 不支持 没有颜色
SeaMonkey 1.1.14 不支持 无色
SeaMonkey 1.1.16 不支持 纯色
SeaMonkey 2.0 beta3 支持
Sunrise 1.7.5 支持
Stainless 0.2.5 支持
Flock 2.0.2 支持
BlackBerry Storm Browser 支持 纯色
Camino 1.6.6 不支持 纯色

上面的数据是通过测试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]-->

4月29日更新:

经过神飞测试发现,RGBa颜色可以用于border,不过,不同的浏览器对于border的RGBa支持不太一样,不过唯一的不同是,FF在border的拐角处会出现叠加,比如透明度是0.4,那么在FF中,四个角的透明度会变成0.8,而支持RGBa的非FF浏览器不会出现这种情况。

译自:css-tricks