您现在的位置是:网站首页> 编程资料编程资料
CSS3 透明色 RGBA使用介绍CSS3颜色值RGBA与渐变色使用介绍CSS3解决移动页面上点击链接触发色块的问题 CSS3中使用RGBa来调节透明度的教程CSS3中使用RGBA设置透明度的示例CSS3 rgb and rgba(透明色)的使用详解
2021-09-07
862人已围观
简介 我们今天需要讨论的RGBA。如果需要更详细的解说,大家就跟着我一起往下看吧
语法:
R:红色值。正整数 | 百分数
G:绿色值。正整数 | 百分数
B:蓝色值。正整数| 百分数
A:透明度。取值0~1之间
取值:
说明:
RGB色彩模式(也翻译为“红绿蓝”,比较少用)是工业界的一种颜色标准,是通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。
RGBA在RGB的基础上多了控制alpha透明度的参数。以上R、G、B三个参数,正整数值的取值范围为:0 - 255。百分数值的取值范围为:0.0% - 100.0%。超出范围的数值将被截至其最接近的取值极限。并非所有浏览器都支持使用百分数值。A参数,取值在0~1之间,不可为负值。
浏览器的兼容性:
如果庞统说rgba是制作透明色(透明背景色、透明边框色、透明前景色等),大家不由会想起opacity 这个东西。他在我们CSS2中制作背景色通常用到,可是要用他来制作边框色或都说前景色的话,那他就只能在边上站着了,有心无力呀。
现在我们先来看一个rgba和opacity的对比实例
HTML代码:
我们分别给这两上ul中的li应用相关样式, 在li.opacity中我用使用CSS2中的opacity而在li.rgba中我们使用CSS3的rgba新属性
Opacity样式
RGBA样式
我们来看看其效果:
效果中我们可以看出,他们相同之处就是背景色完全是一样的,但区别就是一直让大家觉得头痛的问题,那就是opacity后代元素会随着一起具有透明性,所以我们Opacity中的字随着透明值下降越来越看不清楚,而RGBA不具有这样的问题,但是其支持的浏览器中有一个占在大市场份额的IE不支持,这也就是让我们需要去做兼容,(听到兼容二字大家是不是特烦,我也是的)希望IE早点能实现。
在CSS2中Opacity能实现透明,而且大多主流浏览器都支持,虽然IE下有点麻烦
那为什么不使用opacity而要使用rgba呢
从我们上面的实例中我们也知道,RGBA比元素设置CSS的透明度更好,因为单独的颜色可以在不影响整个元素的透明度,他不会影响到元素其他的属性,比如说边框,字体同时也不会影响到其他元素的相关透明度。
在RGBA还没有出世前,我们都是使用opacity来做透明,但这里存在一个问题,就是我们在父元素中使用了opacity,那么其垢代元素都会受其影响,我想这个问题大家都有碰到过,为了解决这样的问题我们需要增加一个空的div来专门放置使用透明的背景,然后通过使用绝对定位来实现我们需要的结果。为了更好的理解我们在这里来看一个使用opacity的实例。首先来看html
先给他们附上相应的样式
效果:
从效果中我们明显的看出,这里和我们前面那个例子一样,名叫bg的div中设置了opacity,造成其后代元素段落P的前景色也随着变了。如果需要解决这样的问题,在不使用别的新技术下,也就是说坚持使用opacity.那么我们就需要添加一个空的层,在这个地方应用透明背景层首先来看看改变一下html 结构吧
现在我们需要提把bg-content和bg层重合起来,换句话说就是把透明背景层单独放在另外一个div,然后把内容层和背景层重叠。换而言之,我们需要在bg这个div上设置透明色,而在bg-content这个div上放置内容,并且都使用定位,保证bg这个div在bg-content这个div下面。具体看看其CSS的变化:
首先我们在html中把bg这个div分离出来了,让他和bg-content这个div变成兄弟关系,然后通过CSS把他们都定位在同一位置,只是bg放在了bg-content的下面(z-index)控制,另外在bg的div上应用了透明。看看这样一来我们有什么变化,效果如下:
跟没有处理之前相比是不是完美多了。可是这样弄就是有一点麻烦,现在CSS3的RGBA完全可以帮大家解决这样的问题了,接着我们在看一个用RGBA制作的效果吧,看看他是不是完全一样的。
HTML代码:
我们只要在bg-content中应用一个background:rgba();就能有上面那种效果了,具体看看代码吧:
效果:
从效果的对比中我们可以明显的看出,和opacity做出的效果是完全一样的。但是这里有一个问题是我们讨厌的IE(除IE9以外)都不支持CSS3的RGBA属性。那么这样我们在IE下不是什么都没有吗?回答是肯定的,虽然IE不支持但我们不能什么都不给他呀,这样一来我们就碰到一个新名词"fallback color",它的意思是我给IE备份一个色,在不支持RGBA的情况下,我照样给他一个色,而对rgba支持的浏览器并不会带来影响,那我们一起看看这个fallback color怎么用吧。其实很简单,我们可以给其制作一张图片或都只给其加一个色,我们这些就只加一个色吧拿前面的实例来说吧,我们只要把bg-content的样式换一下
这里需要注意的是startColorStr和endColorStr的值#80000000,其中前两位是十六进制的透明度80,也就是透明值为0.5而后面六位是十六进制的颜色#000000(black黑色)。如果你和我一样不知道怎么转换这个值,你可以采用下面这个工具:
CSS背景颜色属性值转换 有关于这个工具的使用大家可以点击志哥的《使用IE过渡滤镜和CSS3中的RGBA属性完成背景色透明效果》
综合上面的所述,我们规纳一个RGBA在实际应用中的模式
上面代码中的颜色值可以根据自己的需求修改,此处只是一个代表性的值。
我们前面简单的带过一句,我们rgba不单可以应用在background上,我们还可以应用在只要设置了颜色的地方都可以使用,我在这里简单的说一下几种:
第一种:前景色color
HTML
CSS样式:
效果:
第二种边框色border-color
HTML
CSS样式:
效果:
第三种:字体的阴影色text-shadow
HTML:
CSS:
效果:
第四种改变边框阴影色
HTML:
CSS:
效果:
最后一种就是渐变颜色,关于这个我就不在多说了,因为我们前面的CSS Gradient有说过个例子,感兴趣的朋友可以到这里去看看。
这里需要告诉大家的一点,这几种使用rgba的方法,目前只有在支持RGBA属性的浏览器才能正常显示,如果需要使用的朋友,请考虑这方面的显示差别。那么到这里关于CSS3的RGBA我就介绍完了,希望能给大家的学习带来一定的帮助,更希望志同道合的朋友一起探讨一起学习一起进步。
相关内容
- 纯CSS实现背景半透明文字不透明效果兼容IE6背景半透明效果CSS链接样式代码css 背景半透明最佳实践css实现背景半透明文字不透明的效果示例
- 让图片img标签在div里上下左右居中的方法div图片垂直居中 如何使div中图片垂直居中解决img在div中居中的问题
- 并排的两个对象如何水平对齐兼容ie6CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- CSS选择器种类、优先级与匹配原理详解CSS控制样式的三种方式(优先级对比验证)CSS优先级的相关知识详细介绍网页css优先级为您详细解读css样式优先级及层叠的顺序排序探讨CSS层叠样式表之CSS解析机制的优先级及样式覆盖问题探讨CSS优先级和!important与IE6的BUG讨论及解决方案IE6下CSS多类选择符优先级不起作用的bug分析及解决方法css样式的优先级究竟庞杂到什么程度css选择器优先级深入理解同级情况下CSS的优先级探讨
- input输入框中有图片怎么使用css布局实现CSS实现动态图片的九宫格布局的实例代码css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局DIV+CSS中让布局、背景图片、文字内容居中的方法css中文字加图片的布局实现用CSS布局复杂的图片边框实例css实现朋友圈照片排列布局的代码
- Firefox下input button内文字不能垂直居中的解决方法浅谈浏览器的兼容模式下的button中文字垂直方向不居中显示用CSS让img input select button 图片,文本框,下拉菜单,按扭垂直居中的如何让你的html button本身居中的实现
- 表格边框以虚线显示的css样式CSS Transition通过改变Height实现展开收起元素从QQtabBar看css命名规范BEM的详细介绍css实现两栏布局,左侧固定宽,右侧自适应的多种方法CSS 实现Chrome标签栏的技巧CSS实现两列布局的N种方法CSS实现隐藏搜索框功能(动画正反向序列)CSS3中Animation实现简单的手指点击动画的示例详解CSS中的特指度和层叠问题详解overflow:hidden的作用(溢出隐藏、清除浮动、解决外边距塌陷)关于CSS浮动与取消浮动的问题
- CSS控制Table内外边框、颜色、大小示例Dreamweaver中怎么让html网页中的table边框细线显示?CSS样式简单实现Table没有外边框只有内边框一个属性border-collapse解决Table的边框问题css让table不显示边框的代码在火狐和谷歌浏览器中无效HTML table表格边框的控制详细说明用CSS设置表格Table的细边框的比较好用的方法 用CSS样式描述表格Table边框网页表格边框的设置方法网页表格表框制作技巧Table显示你要显示的边框代码
- Css浮动元素外层容器高度为0(无高度)的解决方法css浮动中避免包含元素高度为0的4种解决方法解决子容器全部浮动时父容器高度不能自动撑开的方法纯CSS无hacks的跨游览器自适应高度多列布局 推荐在DIV容器中使用浮动元素的方法CSS教程:div设置float后高度不自动增加-CSS教程-网页制作-网页教学网CSS 清除浮动元素方法 整理浮动层自动适应高度的解决方法
- CSS中使用expression完美设置页面最小宽度(兼容ie)CSS expression判断表达式设置input样式CSS expression在Chrome的问题优化浏览器渲染 避免CSS expressionscss expression使用概述及其优缺点介绍CSS行为expression轻松实现IE6无抖动固定定位CSS表达式(expression)解决IE6 position:fixed无效问题CSS中使用expression表达式