`
realic
  • 浏览: 17405 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

(转载)CSS3学习之风骚RGBA

    博客分类:
  • CSS3
阅读更多

CSS3学习之风骚RGBA
作者:夜飞羽 来源:mxria.com  时间:2012-02-28

大部分时候,我们为了获得良好的视觉效果,只能在网页中大量使用图片,特别是各种透明变幻、叠加的效果,非图片不风骚。如今,CSS3带给广大的开发者更方便的领骚工具:RGBa!什么是RGBa?它是一种在CSS中声明包含透明效果的颜色的方法,它的语法是这样的:
div {
   background: rgba(200, 54, 54, 0.5);
}
它允许我们为元素添加透明色。RGBA,顾名思义就是R+G+B+A,再具体点就是RED+GREEN+BLUE+ALPHA,翻译一下就是红+绿+蓝+Alpha透明的颜色。跟其他RGB颜色的区别就是多了一个A,就是我们可以设置透明效果,一个字母赋予了我们神一般的力量。
或许我们习惯了使用”opacity“,它很简单易用,但是,opacity会使所有的子元素都变成透明的,而且很难去解决这个问题。通过RGBa,我们可以将一个元素设置为透明,而不会影响其子元素。RGBA像RGB一样设置颜色,而这个”A”——RGBA中的最后一个值——许可我们设置该元素的透明度。就像opacity声明一样,一个opacity值为1的元素是完全不透明的,而一个opacity为0的元素是完全透明的。下面的例子(请确认您的浏览器支持哦):

css3 rgba
www.mxria.com
www.mxria.com
www.mxria.com
www.mxria.com
www.mxria.com

 

其中用到了如下代码:
<div style="background: rgba(200, 54, 54, 0.1);width:400px;">www.mxria.com</div>
其中,表示半透明度的0.1前面的0是可以省掉的,直接.1也是可以的。该值依次增加,直到完全不透明成为实色。事实上,RGBA跟RGB一样,可以使用到任何需要颜色的地方,比如为DIV区块设置半透明的边框,例如
div {
color: rgb(0, 0, 0);
background-color: rgb(255, 255, 255);
border: 10px solid rgba(255, 255, 255, 0.3);
}
可以设置鼠标滑过时DIV发生变化,例如:
div {
color: rgba(255, 255, 255, 0.8);
background-color: rgba(142, 213, 87, 0.3);
}
div:hover{
color: rgba(255, 255, 255, 1);
background-color: rgba(142, 213, 87, 0.6);
}

如果加上JS的支持,你可以创意出各种各样变幻无穷的交互效果,是不是感觉拥有一大神器?但别高兴太早,IE低版本还是不给力,尽管IE8号称给予了支持,但实际上不给力。目前浏览器的支持情况如下(来自某个神奇人物的总结,最新的支持情况请到w3c官网了解):
浏览器、版本、平台 结果 后备
IE 4.01 无作用 没有颜色
IE 5.5 (PC via IETester) 无作用 没有颜色
IE 6 (PC via IETester) 无作用 实色
IE 7 无作用 实色
IE 8 无作用 实色
IE 9 支持
Firefox 3.6 (OS X) 作用 —
Firefox 3.0.5 (OS X) 作用 —
Firefox 3.0.5 (Windows XP, Vista) 作用 —
Firefox 2.0.0.18 (PC) 无作用 实色
Safari 4 (Developer Preview & 4.0.4, OS X) 作用 —
Safari 3.2.1 (OS X, Windows XP) 作用 —
Mobile Safari (iPhone) 作用 —
Opera 9.6.1 无作用 实色
Opera 10 Beta (Linux & Windows) 作用 —
Opera 10.10 (OS X) 作用 —

Google Chrome 0.4.154.33 (Windows XP) 作用 —
Google Chrome 1.0.154.46 (Windows XP) 作用 —
Google Chrome 4.0.249.49 (OS X) 作用 —
Netscape 4.8 (PC) 无作用 没有颜色
Navigator 9.0.0.5 Linus 无作用 实色
SeaMonkey 1.1.14 无作用 没有颜色
SeaMonkey 2.0 作用 —
Sunrise 1.7.5 作用 —
Stainless 0.2.5 作用 —
Flock 1.2.7 无作用 实色
Flock 2.0.2 作用 —
BlackBerry Storm Browser 作用 —
Camino 1.6.6 无作用 实色
Camino 2.0b1 作用 —
Iceape 1.1.14 (Linux) 无作用 实色
Kazehakase 0.5.2 (Linux) 无作用 实色
Avant 11.7 (Windows XP) 无作用 实色


正如上表所展示的,IE8及其以下都对实用的rgba颜色不支持,怎么办呢?接下来我们谈谈RGBA的高级应用。
1)低版本兼容
可以使用如下重定义的形式来解决
 DIV{
color: rgb(127, 127, 127);
color: rgba(0, 0, 0, 0.5);
}
先设置rgb颜色在设置rgba颜色,这样不支持rgba属性的浏览器只会显示rgb颜色,而支持rgba的浏览器因为重定义的作用会显示rgba颜色。
2)背景使用png透明图片替代
div{
background: transparent url(black50.png);
background: rgba(0, 0, 0, 0.5) none;
}

相同透明度的PNG背景达到了和rgba一样的效果。当然,这得使用PS等图片编辑软件的支持。
3)针对IE,一个让你无法发嗲的货,怎么办?
IE6和IE7可以用IE的私用属性来解决,但只可以达到部分和rgba一样的效果。
div {
filter:progid:DXImageTransform.Microsoft.Gradient(GradientType=1, StartColorStr='#80000000', EndColorStr='#80000000');
}
注意StartColorStr和EndColorStr的值,前两位是十六进制的透明度,后面六位是十六进制的颜色。
二者再来一次重定义,就可以解决兼容性问题。
div{background:rgba(0,0,0,0.5);
filter: progid:DXImageTransform.Microsoft.gradient(startcolorstr=#80000000,endcolorstr=#80000000);
}

关于FILTER:progid:DXImageTransform.Microsoft.Gradient
最简单的使用如下:

filter:progid:DXImageTransform.Microsoft.Gradient(startColorStr=#AARRGGBB,endColorStr=i#AARRGGBB)

startColorStr:可选项。字符串(String)。设置或检索色彩渐变的开始颜色和透明度。
  其格式为 #AARRGGBB 。 AA 、 RR 、 GG 、 BB 为十六进制正整数。取值范围为 00 – FF 。 RR 指定红色值, GG 指定绿色值, BB 指定蓝色值,参阅 #RRGGBB 颜色单位。 AA 指定透明度。 00 是完全透明。 FF 是完全不透明。超出取值范围的值将被恢复为默认值。
  取值范围为 #FF000000 – #FFFFFFFF 。默认值为 #FF0000FF 。不透明蓝色。
EndColorStr:可选项。字符串(String)。设置或检索色彩渐变的结束颜色和透明度。参阅 startColorStr 属性。默认值为 #FF000000 。不透明黑色。


总结:CSS3很多新特性,可以让开发人员风骚无比,可以不用再去找美工MM修改图片了,而是自己通过代码就获得很多漂亮的效果。只要你够嗲够骚,CSS3绝对是你领骚风尚的神器!


分享到:
评论

相关推荐

    css3系列教程(RGBA).rar

    使用新的css3的”RGBA”声明,不仅仅让我们像通常一样设置RGB颜色,而且还可以设置其透明度。

    hex-to-rgba:将CSS十六进制颜色代码转换为rgba()

    hex-to-rgba将老式CSS十六进制颜色值字符串转换为rgba()字符串。 (可选)传入一个alpha值。 传递的alpha值将覆盖4或8位十六进制的任何alpha值。 如果您根本不输入任何Alpha值,我们将默认使用Alpha值1(完全...

    详解css透明度之rgba和opacity的区别及兼容

    对于设置透明度,我们有两个可以选的css3属性:rgba 和 opacity。这篇文章主要介绍了详解css透明度之rgba和opacity的区别及兼容,感兴趣的可以一起跟随小编来了解一下

    最新CSS3学习视频教程 33讲完整版 后盾网CSS3视频教程

    ├01 css3元素选择器 属性选择器 伪类选择器.mp4 ├02 css3文本选择器 表单选择器 子选择器.mp4 ├03 rgba 字体单位 text-shadow box-shadow.mp4 ├04 盒子尺寸 box-sizing 分栏 background-size linear-gradient ...

    CSS3颜色值RGBA与渐变色使用介绍

    CSS3之前渐变色图片只能用背景图片 CSS3的渐变色语法可以让我们省去下载图片的开销 并且在改变浏览器分辨率时有更好的效果 颜色值RGBA 我们熟悉的rgb颜色标准,是由r(red)、g(green)、b(blue)三种颜色叠加变化...

    HTML5中文手册 + CSS3中文手册

    其他特性包括新的页面元素,比如 , , , ...包含的一些css3新功能如圆角、多背景、@font-face 用户自定义字体、动画与渐变、渐变色、盒阴影、RGBa – 加入透明色、文字阴影等等及现在浏览器的兼容识别程度都弄得很清楚。

    css+html+css颜色对照表

    css2.0电子书 css html css颜色对照表、 总结的非常好的东西!

    postcss-hexrgba:PostCSS插件,将速记十六进制方法添加到rgba()值

    PostCSS HexRGBA 插件,将速记十六进制方法添加到rgba()值。 输入. foo { color : rgba ( # 0fab53 , 0.8 )}. bar { background : linear-gradient ( rgba ( # fff , .1 ) , rgba ( # fff , .2 ));} 输出. foo { ...

    CSS3中使用RGBA设置透明度的示例

    说明:RGBA(R,G,B,A) 取值:R:红色值。正整数 | 百分数G:绿色值。正整数 | 百分数B:蓝色值。正整数 | 百分数A:Alpha透明度。取值0~1之间。 下面是用rgba() 设置50%透明度的白色.  CSS Code复制内容到剪贴板 p...

    rgba的ie浏览器支持换算器

    实现各个浏览器中具备良好的透明特性的效果,IE中使用私有滤镜filter,高端浏览器使用CSS3中的rgba属性。 输入十六进制的颜色值以及透明度,自动在IE的过渡滤镜以及CSS3中的rgba属性之间进行十六进制与十进制的换算...

    CSS3的RGBA中关于整数和百分比值的转换

    主要介绍了CSS3的RGBA中关于整数和百分比值的转换,同时提到了关于浏览器的支持问题,需要的朋友可以参考下

    PNG转换RGBA.exe

    因为本人用的是MCU,没使用linux或者andriod等系统,要做图片的透明叠加效果,在网上各种找PNG转565rgba和888rgba的工具软件,找了好久都一直找不到,实在没办法自己写了一个,用在本人的实际项目中。可以选择转换成...

    CSS3基础(RGBa、text-shadow、box-shadow、border-radius)

    RGBa前三个值是RGB色值,最后一个值是十进制的alpha不透明度值(0=透明,1=不透明)CSS 3 RGBa实现半透明背景RBGa可以用于任何更颜色相关的属性,例如字体颜色、边框颜色、背景颜色、阴影颜色等。RGBa可以应用在所有...

    RGBA数据转存BMP图片

    RGBA数据转存BMP图片。。。。。。。。。。。。。。。。。。。。 只有一个头文件,3个函数,包含使用即可。。。。。。。。。。。。。。。。。。

    CSS3中使用RGBa来调节透明度的教程

    其实,在 CSS3 中还有另外一套颜色透明解决方案 —— RGBa 。相对于 opacity ,RGBa 可以在单个元素上设置透明度,而不影响其子元素,只是 RGBa 的浏览器支持度并没有 opacity 的广泛,因此相对较少引起开发者注意。...

    PicViewer RGBA32格式查看

    RGBA32格式查看,后续持续更新支持更多格式

    css3背景,渐变,蒙版

    css3背景,渐变,蒙版背景切割背景原点背景尺寸rgba模式hsl模式线性渐变径向渐变给容器添加蒙版背景在文字区域可见倒影

Global site tag (gtag.js) - Google Analytics