CSS3中使用RGBa来调节透明度的示例说明

这篇文章主要介绍了css3中使用rgba来调节透明度的教程,rgba是rgb色彩模型的一个扩展,这个缩写词代表红绿蓝三原色的首字母,alpha值代表颜色的透明度或者说不透明度,需要的朋友可以参考下

在 CSS3 中,增加了一个 opacity 属性,允许开发者设置元素的透明度,现在 opacity 已被主流的现代浏览器支持,但 opacity 会把被设置的元素及其子元素同时设置为同一个透明度,这样的透明规则相当不灵活,在实际开发中往往也是会遇到很多麻烦。其实,在 CSS3 中还有另外一套颜色透明解决方案 —— RGBa 。相对于 opacity ,RGBa 可以在单个元素上设置透明度,而不影响其子元素,只是 RGBa 的浏览器支持度并没有 opacity 的广泛,因此相对较少引起开发者注意。

RGBA(R,G,B,A)
取值:
R:红色值。正整数 | 百分数
G:绿色值。正整数 | 百分数
B:蓝色值。正整数 | 百分数
A:Alpha透明度。取值0~1之间。
下面是用rgba() 设置50%透明度的白色.

p {   color: rgba(255, 255, 255, 0.5);   }

RGBA是RGB色彩模型的一个扩展。这个缩写词代表红绿蓝三原色的首字母,Alpha值代表颜色的透明度/不透明度。

下面开始详细介绍 RGBa 颜色。

立即学习“前端免费学习笔记(深入)”;

一. RGBa 颜色基础
RGBa 在本质上看也是为设置的元素增加了一个 alpha 通道,即在红色、绿色、蓝色三种颜色通道之外增加一个代表透明度的通道,其中 RGB 值使用我们熟悉的用3个 0 到 255 的整数分别表示红色、绿色、蓝色,而 alpha 取值则为 0 到 1 (小数位一位)。下面例举一个例子说明其具体的使用方式:

在 CSS 2.1 中,支持使用 RGB 色彩声明(尽管开发者可能更加习惯使用如:#343434 的 16 进制表示方式),例如要为 id 为 example 的 p 元素设置背景色 #343434 ,可以这样写

/* RGB 表示方式 */#example {background: rgb(52, 52, 52); }

接下来再使用 RGBa ,把例子中的背景颜色修改成带 0.5 透明度。

/* 设置 0.5 透明度 */#example-a {background: rgba(52, 52, 52, 0.5); }   /* 也可以省略小数点前的 0 */#example-a {background: rgba(52, 52, 52, .5); }

增加透明度前后效果如下(为了更明显的反映透明度带来的效果,例子中的 body 增加了背景纹理):
CSS3中使用RGBa来调节透明度的示例说明

可以看出,RGBa 只是在原有的 RGB 的基础上增加一个参数,这个改动虽小,却为开发者提供了很大的方便。

另外,RGBa 除了可以用在 background 属性外,还可以用在 color 和 border 属性(注:border 属性使用 RGBa 在 Firefox 中会与在其他浏览器中的效果略有不同)。

二. 浏览器支持与渐进增强
尽管 RGBa 已经在主流现代浏览器中获得了良好的支持,其中 Webkit 对 RGBa 的支持是最早的,Chrome 至少在 0.415 版本便开始支持 RGBa ,在这个方面 Chrome 可以说是非常给力的,另外 Gecko 和 Presto 内核也逐步实现了对 RGBa 的支持,IE 浏览器则从 IE9 开始才支持 RGBa 。更具体的浏览器支持情况如下:

Chrome 0.4.154.33+ , Firefox 3.0+ , Safari 3.2.1+ , Opera 10.10+ , IE9+

更加详细的浏览器支持情况请参考这里。

对于不支持 RGBa 的浏览器,这里可以采用渐进增强的方案解决,Kayo 推荐的是指定一个保留色的解决方案。首先,开发者必须知道,不支持 RGBa 的浏览器会把使用了 RGBa 的 CSS 属性值视为语法错误,因此不理会该 CSS 属性设置。因此,开发者可以在设置 RGBa 颜色之前首先设置一个不使用透明度的属性,避免当浏览器不支持 RGBa 时出现完全没有颜色的情况。下面对上例进行扩展说明:

#example1 {background: rgb(52, 52, 52); background: rgba(52, 52, 52, .5); }
不支持 RGBa 的浏览器会忽略第二个 background 属性设置,按照第一个属性值设置元素的背景色,这样虽然不能使浏览器之间的效果相同,但已经达到相似的效果了,并且体现了一种不错的渐进增强解决方案。

当然,对于 IE ,可以使用滤镜达到与支持 RGBa 浏览器中相同的效果,例如:针对以上例子,你可以如下地编写代码

       #example-a {background: rgba(52, 52, 52, .5); }      

这里需要注意,滤镜中使用的是上例中相同的颜色和透明度,只是使用 16 进制表示。

IE 会忽略 RGBa 颜色设置,并且根据 filter 滤镜设置颜色,这样的效果与 RGBa 的效果相同。

三. 不影响子元素
在文章的开头已经介绍过,RGBa 相对 opacity 的优势是不会影响其子元素,即可以单独为被设置的元素设置透明度,而子元素而不受该设置影响。下面再例举一个具体的例子,分别以 RGBa 和 opacity 为元素设置透明度说明两者的区别。

完整代码:

                    RGBa 与 opacity 效果的区别                  body {padding-top: 200px; background: url(bg.png); }           #example, #example-a {width: 200px; height: 100px; margin: 0 auto; }           #example {background: rgb(52, 52, 52); opacity: 0.5; }           #example-a {margin-top: 20px; background: rgba(52, 52, 52, .5); }           .inside {display: block; width: 50px; height: 50px; margin-left: 10px; background: rgb(100, 140, 180); }                    

具体效果
CSS3中使用RGBa来调节透明度的示例说明

可以看出,opacity 会使其中的子元素 span 同时变为半透明的效果,而 RGBa 则只改变被设置的元素的透明度,而在大多数情况下,开发者只需要设置当前元素的透明度(如遮罩,半透明背景等),因此使用 RGBa 会更加的灵活。

另外,在 IE9 中,直接使用 RGBa 颜色与使用 opacity 设置透明的效果会有差异(读者可以在 IE9 下浏览 Demo 查看具体的效果),开发者需要注意这一点差异。

相关文章:

CSS设定一个元素半透明

CSS3教程(8):CSS3透明度指南

实现CSS3不透明度完整代码

以上就是CSS3中使用RGBa来调节透明度的示例说明的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1607951.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月23日 21:17:45
下一篇 2025年12月23日 21:18:08

相关推荐

  • 利用CSS3的opacity属性设置透明效果的用法介绍

    这篇文章主要介绍了详解css3的opacity属性设置透明效果的用法,同时还讲到了opacity透明度带有的继承性影响子集元素的问题,值得初学者注意,需要的朋友可以参考下 CSS3 opacity 属性的功能是用来控制网页元素的透明效果(调整不透明度),早期网页设计常常会用到许多的透明效果,通常都是…

    好文分享 2025年12月23日
    000
  • 纯CSS3实现不错的表单验证效果

    这是补充html5基础知识的系列内容,其他为: 一、HTML5– 新的结构元素 二、HTML5– figure、time、details、mark 三、HTML5– details活学活用 四、HTML5– 现存元素的变化 立即学习“前端免费学习笔记(…

    2025年12月23日 好文分享
    000
  • 详解css3文字与字体样式

    这篇文章详解css3文字与字体样式 css3使用服务器端字体: 使用服务器端字体 @font-face { font-family: webFont; /*此代码会首先用客户端字体Arial,如果客户端没有用下面一种服务器端字体*/ /*format格式: (ttf):truetype;(otf):…

    好文分享 2025年12月23日
    000
  • 使用CSS3实现背景颜色渐变

    这篇文章介绍使用css3实现背景颜色渐变  CSS渐变色概念: CSS渐变色(Gradients)能让我们用一种颜色渐变的效果修饰一个空间——从一种颜色过渡到另外一种颜色——填充这个空间。渐变色有两个形式:linear (线性渐变) 和 radial (环形渐变)。很显然CSS渐变色(Gradien…

    2025年12月23日
    000
  • 利用css3实现圆形进度条

    在开发微信小程序的时候,遇到圆形进度条的需求。使用canvas绘图比较麻烦:   1、为了实现在不同屏幕上面的适配,必须动态的计算进度条的大小;   2、在小程序中,canvas的画布具有最高的层级,不易于扩展。 但使用css3和js实现进度条就很容易的避免了这方面的问题。 注:这篇文章里面使用jq…

    2025年12月23日
    000
  • CSS3+Js实现响应式导航条方法

    本文介绍css3+js实现响应式导航条方法 今天制作了一个响应式导航条,能够自动随着不同的屏幕分辨率或浏览器窗口大小的不同而改变导航条的样式,这里主要用到的就是CSS3的Media Query。具体可以查看浅谈响应式布局这篇文章,这里就不花费大量的篇幅介绍了,主要看一下这个导航条该怎么做。 另外需要…

    2025年12月23日
    000
  • 图解CSS3制作圆环形进度条的方法

    圆环形进度条制作的基本思想还是画出基本的弧线图形,然后css3中我们可以控制其旋转来串联基本图形,制造出部分消失的效果,下面就来带大家学习图解css3制作圆环形进度条的方法 首先,当有人说你能不能做一个圆形进度条效果出来时,如果是静态完整圆形进度条,那么就很简单了: .circleprogress{…

    2025年12月23日 好文分享
    000
  • css3多列及瀑布流效果示例代码

    这篇文章介绍css3多列及瀑布流效果示例代码 css3内容分块,多列效果(类似报纸版块排版): .p02{ /*count:内容分为几列,gap:内容与分割线的距离,rule:分割线样式*/ column-count:4; column-gap:30px; column-rule:5px outse…

    2025年12月23日
    000
  • 使用CSS3中calc()属性来以算式表达尺寸数值的说明

    本篇文章讲述使用css3中calc()属性来以算式表达尺寸数值的说明 calc()的用法十分巧妙,可以像我们在学校做数学应用题那样列式子来计算长度宽度等值,从而一定程度上实现自适应布局,下面我们就来介绍如何使用CSS3中的calc()属性来以算式表达尺寸数值 我们想要实现页面自适应布局时,通常因为m…

    好文分享 2025年12月23日
    000
  • 详解css3中matrix函数的使用方法

    下面小编就为大家带来一篇详解css3中matrix函数的使用方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 scale(sx,sy)对应matrix(sx,0,0,sy,0,0)  拉伸 rotate(θ)对应matrix(cosθ,sinθ,-sinθ,cosθ…

    好文分享 2025年12月23日
    000
  • 移动端Web页面的CSS3 flex布局学习指南

    flexbox通常能让我们更好的操作他的子元素布局,这里稍微来提炼一下移动端web页面的css3 flex布局学习指南,需要的朋友可以参考下 1、开始使用flexbox布局的方法,代码如下: footer{ display:flex; } 立即学习“前端免费学习笔记(深入)”; 2、接下来为foot…

    好文分享 2025年12月23日
    000
  • CSS3中的box-flex弹性盒属性布局的示例介绍

    flex布局毫无疑问是当今web页面的最强大布局方式,box-flex弹性盒模型是其中的一个代表,这里我们就来以实例讲解css3中的box-flex弹性盒模型布局 box-flex是css3新添加的盒子模型属性,它的出现打破了我们经常使用的浮动布局,实现垂直等高、水平均分、按比例划分。但是它有一定的…

    2025年12月23日 好文分享
    000
  • 使用CSS3的图层阴影和文字阴影效果的详细介绍

    box-shadow图层阴影 box-shadow:阴影类型 X水平偏移(可取正负值) Y垂直偏移(可取正负值) 阴影大小 阴影扩展 阴影颜色值阴影类型可以省略,默认为外投影,当它的值为inset时,为内阴影效果。X水平偏移和Y垂直偏移可取正负值,当X为负值是投影在左边,为正时投影在右边。当Y为负值…

    2025年12月23日 好文分享
    000
  • 使用CSS3的ruby-position固定注音位置的用法示例介绍

    ruby-position能在样式上定制文字周围的注音位置,页面编码设置好以后可以用来制作各种语言之间的加注翻译效果,下面我们来看一下使用css3的ruby-position固定注音位置的用法示例: ruby-position 指定注意的位置时使用。 属性值1.before 注音文本会在基础文字上面…

    2025年12月23日 好文分享
    000
  • CSS3实现时间轴效果方法

    最近打开电脑就能看到极客学院什么新用户vip免费一个月,就进去看看咯,这里就不说它的课程怎么滴了,里面实战路径图页面看到了这个效果:  有点像时间轴的赶脚,而且每一块鼠标悬浮上去也有下拉效果展开介绍截图信息,就感觉效果还不错。但感觉这种效果貌似对于动态添加不是很灵活,因为高度不像宽度可以灵活的自适应…

    2025年12月23日
    000
  • CSS3实现可爱的小黄人动画示例代码

    每次看到css3动画就心痒痒想试一下,记得一个多月前看了白树哥哥的一篇博客,突然开窍,于是拿他提供的demo试了一下,感觉很棒!下图为demo提供的动画帧设计稿。 自己也想说搞一个DIY的动画出来,可是,会PS不一定会设计啊,我搞不出一套动画设计稿出来啊【抓狂】….于是乎,去了站酷网找找素材,我果然…

    2025年12月23日 好文分享
    000
  • CSS3制作缩略图的详细过程分析

    我们使用 border 属性来创建缩略图,具体内容如下 img { border: 1px solid #ddd; border-radius: 4px; padding: 5px; } 缩略图我们使用 border 属性来创建缩略图。@@##@@ 缩略图如何作为连接? a { display: i…

    2025年12月23日 好文分享
    000
  • CSS3实现iPhone滑动解锁功能代码示例

    该效果的主要实现思路是给文字添加渐变的背景,然后对背景进行裁剪,按文字裁剪(目前只有webkit内核浏览器支持该属性),最后给背景添加动画,即改变背景的位置,背景动画效果如下(gif录制时有卡顿,代码实现时不卡): 最终效果如下所示: 全部代码如下: p{ width:50%; margin:0 a…

    2025年12月23日
    000
  • css3动画效果总结分析

    css3的动画功能有以下三种: 1、transition(过度属性)2、animation(动画属性)3、transform(2D/3D转换属性) 下面逐一进行介绍我的理解: 1、transition: 如-webkit-transition:color 1s; 立即学习“前端免费学习笔记(深入)”…

    2025年12月23日
    000
  • 纯CSS3鼠标滑过图片遮罩层动画特效

    简要教程 这是一款使用纯css3制作的鼠标滑过图片遮罩层动画特效。该特效中,当鼠标滑过或悬停在图片上面时,会在图片上出现遮罩层动画,展示出图片的描述信息和链接图标按钮。  使用方法 在页面中引入bootstrap样式文件和font-awesome字体图标文件。  HTML结构 该特效的HTML结构如…

    好文分享 2025年12月23日
    000

发表回复

登录后才能评论
关注微信