CSS3 透明色 RGBA使用介绍


Posted in HTML / CSS onAugust 06, 2013

RGB对于大家来说一点不陌生,他就是红色R+绿色G+蓝色B,那现在我们所说的RGBA又是什么呢?说得简单一点就是在RGB的基础上加进了一个通道Alpha。从而形成了我们今天需要讨论的RGBA。如果需要更详细的解说,大家就跟着我一起往下看吧。

语法:

R:红色值。正整数 | 百分数

G:绿色值。正整数 | 百分数

B:蓝色值。正整数| 百分数

A:透明度。取值0~1之间

取值:

<length> :Hue(色调)。 0(或360)表示红色,120表示绿色,240表示蓝色,当然可取其他数值来确定其它颜色;

<percentage> :Saturation(饱和度)。 取值为0%到100%之间的值;

<percentage> :Lightness(亮度)。 取值为0%到100%之间的值;

<opacity> :alpha(透明度)。 取值在0到1之间;

说明:

RGB色彩模式(也翻译为“红绿蓝”,比较少用)是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。

RGBA在RGB的基础上多了控制alpha透明度的参数。以上R、G、B三个参数,正整数值的取值范围为:0 - 255。百分数值的取值范围为:0.0% - 100.0%。超出范围的数值将被截至其最接近的取值极限。并非所有浏览器都支持使用百分数值。A参数,取值在0~1之间,不可为负值。

浏览器的兼容性:

 CSS3 透明色 RGBA使用介绍

如果庞统说rgba是制作透明色(透明背景色、透明边框色、透明前景色等),大家不由会想起opacity 这个东西。他在我们CSS2中制作背景色通常用到,可是要用他来制作边框色或都说前景色的话,那他就只能在边上站着了,有心无力呀。

现在我们先来看一个rgba和opacity的对比实例

HTML代码:

 CSS3 透明色 RGBA使用介绍

我们分别给这两上ul中的li应用相关样式, 在li.opacity中我用使用CSS2中的opacity而在li.rgba中我们使用CSS3的rgba新属性

Opacity样式

 CSS3 透明色 RGBA使用介绍

CSS3 透明色 RGBA使用介绍

RGBA样式

CSS3 透明色 RGBA使用介绍

我们来看看其效果:

 CSS3 透明色 RGBA使用介绍

效果中我们可以看出,他们相同之处就是背景色完全是一样的,但区别就是一直让大家觉得头痛的问题,那就是opacity后代元素会随着一起具有透明性,所以我们Opacity中的字随着透明值下降越来越看不清楚,而RGBA不具有这样的问题,但是其支持的浏览器中有一个占在大市场份额的IE不支持,这也就是让我们需要去做兼容,(听到兼容二字大家是不是特烦,我也是的)希望IE早点能实现。

在CSS2中Opacity能实现透明,而且大多主流浏览器都支持,虽然IE下有点麻烦

CSS3 透明色 RGBA使用介绍

那为什么不使用opacity而要使用rgba呢

从我们上面的实例中我们也知道,RGBA比元素设置CSS的透明度更好,因为单独的颜色可以在不影响整个元素的透明度,他不会影响到元素其他的属性,比如说边框,字体同时也不会影响到其他元素的相关透明度。

在RGBA还没有出世前,我们都是使用opacity来做透明,但这里存在一个问题,就是我们在父元素中使用了opacity,那么其垢代元素都会受其影响,我想这个问题大家都有碰到过,为了解决这样的问题我们需要增加一个空的div来专门放置使用透明的背景,然后通过使用绝对定位来实现我们需要的结果。为了更好的理解我们在这里来看一个使用opacity的实例。首先来看html

 CSS3 透明色 RGBA使用介绍

先给他们附上相应的样式

 CSS3 透明色 RGBA使用介绍

效果:

 CSS3 透明色 RGBA使用介绍

从效果中我们明显的看出,这里和我们前面那个例子一样,名叫bg的div中设置了opacity,造成其后代元素段落P的前景色也随着变了。如果需要解决这样的问题,在不使用别的新技术下,也就是说坚持使用opacity.那么我们就需要添加一个空的层,在这个地方应用透明背景层首先来看看改变一下html 结构吧

 CSS3 透明色 RGBA使用介绍

现在我们需要提把bg-content和bg层重合起来,换句话说就是把透明背景层单独放在另外一个div,然后把内容层和背景层重叠。换而言之,我们需要在bg这个div上设置透明色,而在bg-content这个div上放置内容,并且都使用定位,保证bg这个div在bg-content这个div下面。具体看看其CSS的变化:

 CSS3 透明色 RGBA使用介绍

首先我们在html中把bg这个div分离出来了,让他和bg-content这个div变成兄弟关系,然后通过CSS把他们都定位在同一位置,只是bg放在了bg-content的下面(z-index)控制,另外在bg的div上应用了透明。看看这样一来我们有什么变化,效果如下:

 CSS3 透明色 RGBA使用介绍

跟没有处理之前相比是不是完美多了。可是这样弄就是有一点麻烦,现在CSS3的RGBA完全可以帮大家解决这样的问题了,接着我们在看一个用RGBA制作的效果吧,看看他是不是完全一样的。

HTML代码:

 CSS3 透明色 RGBA使用介绍

我们只要在bg-content中应用一个background:rgba();就能有上面那种效果了,具体看看代码吧:

 CSS3 透明色 RGBA使用介绍

效果:

 CSS3 透明色 RGBA使用介绍

从效果的对比中我们可以明显的看出,和opacity做出的效果是完全一样的。但是这里有一个问题是我们讨厌的IE(除IE9以外)都不支持CSS3的RGBA属性。那么这样我们在IE下不是什么都没有吗?回答是肯定的,虽然IE不支持但我们不能什么都不给他呀,这样一来我们就碰到一个新名词"fallback color",它的意思是我给IE备份一个色,在不支持RGBA的情况下,我照样给他一个色,而对rgba支持的浏览器并不会带来影响,那我们一起看看这个fallback color怎么用吧。其实很简单,我们可以给其制作一张图片或都只给其加一个色,我们这些就只加一个色吧拿前面的实例来说吧,我们只要把bg-content的样式换一下

 CSS3 透明色 RGBA使用介绍

这里需要注意的是startColorStr和endColorStr的值#80000000,其中前两位是十六进制的透明度80,也就是透明值为0.5而后面六位是十六进制的颜色#000000(black黑色)。如果你和我一样不知道怎么转换这个值,你可以采用下面这个工具:

CSS背景颜色属性值转换 有关于这个工具的使用大家可以点击志哥的《使用IE过渡滤镜和CSS3中的RGBA属性完成背景色透明效果》

综合上面的所述,我们规纳一个RGBA在实际应用中的模式

 CSS3 透明色 RGBA使用介绍

上面代码中的颜色值可以根据自己的需求修改,此处只是一个代表性的值。

我们前面简单的带过一句,我们rgba不单可以应用在background上,我们还可以应用在只要设置了颜色的地方都可以使用,我在这里简单的说一下几种:

第一种:前景色color

HTML

 CSS3 透明色 RGBA使用介绍

CSS样式:

 CSS3 透明色 RGBA使用介绍

效果:

 CSS3 透明色 RGBA使用介绍

第二种边框色border-color

HTML

CSS3 透明色 RGBA使用介绍

CSS样式:

 CSS3 透明色 RGBA使用介绍

效果:

 CSS3 透明色 RGBA使用介绍

第三种:字体的阴影色text-shadow

HTML:

 CSS3 透明色 RGBA使用介绍

CSS:

CSS3 透明色 RGBA使用介绍

效果:

 CSS3 透明色 RGBA使用介绍

第四种改变边框阴影色

HTML:

 CSS3 透明色 RGBA使用介绍

CSS:

CSS3 透明色 RGBA使用介绍

效果:

 CSS3 透明色 RGBA使用介绍

最后一种就是渐变颜色,关于这个我就不在多说了,因为我们前面的CSS Gradient有说过个例子,感兴趣的朋友可以到这里去看看。

这里需要告诉大家的一点,这几种使用rgba的方法,目前只有在支持RGBA属性的浏览器才能正常显示,如果需要使用的朋友,请考虑这方面的显示差别。那么到这里关于CSS3的RGBA我就介绍完了,希望能给大家的学习带来一定的帮助,更希望志同道合的朋友一起探讨一起学习一起进步。

HTML / CSS 相关文章推荐
需要知道的CSS3动画技术
Jan 01 HTML / CSS
css3 按钮样式简单可扩展创建
Mar 18 HTML / CSS
使用css3背景渐变中的透明度来设置不同颜色的背景渐变
Mar 31 HTML / CSS
用CSS3实现无限循环的无缝滚动的实例代码
Jul 04 HTML / CSS
使用 css3 实现圆形进度条的示例
Jul 05 HTML / CSS
用canvas实现图片滤镜效果附演示
Nov 05 HTML / CSS
html5+svg学习指南之SVG基础知识
Dec 17 HTML / CSS
html5 figure和figcaption的使用方法
Sep 10 HTML / CSS
canvas探照灯效果的示例代码
Nov 30 HTML / CSS
基于html5 canvas做批改作业的小插件
May 20 HTML / CSS
HTML5 新增内容和 API详解
Nov 17 HTML / CSS
flex弹性布局详解
Mar 20 HTML / CSS
实现CSS3中的border-radius(边框圆角)示例代码
Jul 19 #HTML / CSS
CSS3 实用技巧:实现黑白图像效果示例代码
Jul 11 #HTML / CSS
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
Jun 06 #HTML / CSS
CSS3新属性transition-property transform box-shadow实例学习
Jun 06 #HTML / CSS
CSS3旋转——彩色扇子兼容firefox浏览器
Jun 04 #HTML / CSS
CSS3+font字体文件实现圆形半透明菜单具体步骤(图解)
Jun 03 #HTML / CSS
css3弹性盒模型实例介绍
May 27 #HTML / CSS
You might like
PHP cron中的批处理
2008/09/16 PHP
Yii2 ActiveRecord多表关联及多表关联搜索的实现
2016/06/30 PHP
nginx 设置多个站跨域
2021/03/09 Servers
做好七件事帮你提升jQuery的性能
2014/02/06 Javascript
js,jquery滚动/跳转页面到指定位置的实现思路
2014/06/03 Javascript
浅谈javascript回调函数
2014/12/07 Javascript
jQuery替换节点用法示例(使用replaceWith方法)
2016/09/08 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
vue2.0 移动端实现下拉刷新和上拉加载更多的示例
2018/04/23 Javascript
详解微信小程序的 request 封装示例
2018/08/21 Javascript
angularJs中orderBy筛选以及filter过滤数据的方法
2018/09/30 Javascript
[01:50:49]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第三场 1月24日
2021/03/11 DOTA
Python实现3行代码解简单的一元一次方程
2014/08/18 Python
在Python中使用判断语句和循环的教程
2015/04/25 Python
python中hashlib模块用法示例
2017/10/30 Python
Selenium定位元素操作示例
2018/08/10 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
PyCharm搭建Spark开发环境的实现步骤
2019/09/05 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
Python tcp传输代码实例解析
2020/03/18 Python
解决python脚本中error: unrecognized arguments: True错误
2020/04/20 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
python输入一个水仙花数(三位数) 输出百位十位个位实例
2020/05/03 Python
CSS3对背景图片的裁剪及尺寸和位置的设定方法
2016/03/07 HTML / CSS
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
信用社实习人员自我鉴定
2013/09/20 职场文书
银行存款证明样本
2014/01/17 职场文书
模范家庭事迹材料
2014/02/10 职场文书
毕业生自荐信格式
2014/03/07 职场文书
个人租房协议书
2014/04/09 职场文书
供应链金融服务方案
2014/05/25 职场文书
村党建工作汇报材料
2014/11/02 职场文书
2014年电厂个人工作总结
2014/11/27 职场文书
检讨书范文300字
2015/01/28 职场文书
某某幼儿园的教育教学管理调研分析报告
2019/11/29 职场文书
如何用python反转图片,视频
2021/04/24 Python