RGB颜色函数-RGB()颜色函数

在 Sass 的官方文档中,列出了 Sass 的颜色函数清单,从大的方面主要分为 RGB , HSL 和 Opacity 三大函数,当然其还包括一些其他的颜色函数,比如说 adjust-color 和 change-color 等。在这章节中,将主要和大家一起探讨 Sass 颜色函数中常见的 RGB、HSL 和 Opacity 函数。

1、RGB颜色函数

RGB 颜色只是颜色中的一种表达式,其中 R 是 red 表示红色,G 是 green 表示绿色而 B 是 blue 表示蓝色。在 Sass 中为 RGB 颜色提供六种函数:

  • rgb($red,$green,$blue):根据红、绿、蓝三个值创建一个颜色;
  • rgba($red,$green,$blue,$alpha):根据红、绿、蓝和透明度值创建一个颜色;
  • red($color):从一个颜色中获取其中红色值;
  • green($color):从一个颜色中获取其中绿色值;
  • blue($color):从一个颜色中获取其中蓝色值;
  • mix($color-1,$color-2,[$weight]):把两种颜色混合在一起。

仅从概念上,或许大家没有太多的概念,我们通过下面的命令来做一个简单的测试:

sass -i

在命令终端开启这个命令,相当于开启 Sass 的函数计算。

接下来,分别在终端使用 RGB 函数来进行计算,看其最终结果:

$ sass -i >> #c82858 //根据r:200,g:40,b:88计算出一个十六进制颜色值 #c82858 >> rgba(#c82858,.65) //根据#c82858的65%透明度计算出一个rgba颜色值 rgba(200, 40, 88, 0.65) >> red(#c82858) //从#c82858颜色值中得到红色值 200 200 >> green(#c82858) //从#c82858颜色值中得到绿色值 40 40 >> blue(#c82858) //从#c82858颜色值中得到蓝色值 88 88 >> mix(#c82858,rgba(200,40,80,.65),.3) //把#c82858和rgba(200,40,88,.65) 两颜色按比例混合得到一个新颜色 rgba(200, 40, 80, 0.65105)

从上面的简单运算结果可以很清晰的知道。在 RGB 颜色函数中,在实际中常用的主要是 rgba() 和 mix() 两个函数,而 rgb() 函数只能快速的将一个 rgb 颜色转换成十六进制颜色表达,red()、green() 和 blue() 函数,只能取得某一颜色的一个值,对于颜色上使用并无太大作用(或许他的好处,我还没有理解过来)。接下来,主要来实战一下 rgba() 和 mix() 函数在实际中的运用。

RGB颜色函数-RGBA()函数

2、rgba() 函数主要用来将一个颜色根据透明度转换成 rgba 颜色。

其语法有两种格式:

rgba($red,$green,$blue,$alpha)  //将一个rgba颜色转译出来,和未转译的值一样 rgba($color,$alpha)  //将一个Hex颜色转换成rgba颜色 

其中 rgba($color,$alpha) 函数作用更大,主要运用在这样的情形之中:假设在实际中知道的颜色值是 #f36 或者 red,但在使用中,需要给他们配上一个透明度,这个时候在原来的 CSS 中,首先需要通过制图工具,得到 #f36 或 red 颜色的 R、G、B 值,而不能直接使用(注意 css3 是可以的,但是存在浏览器兼容问题):

//CSS color: rgba(#f36,.5); //在css中,这是无效的写法

但在 Sass 中,RGBA() 函数就能解决这个问题。我们先来看一个简单的例子,假设在变量中定义了一个基本的变量:

$color: #f36; $bgColor: orange; $borderColor:green;

同时给他们加上 .5 的透明度:

//SCSS .rgba {     color: rgba(#f36,.5);     background: rgba(orange,.5);     border-color: rgba(green,.5); }

语法:

在这个实例中,我们使用了 Sass 的 rgba 函数,在括号是函数的参数,第一个参数是需要转换的颜色,他可以是任何颜色的表达方式,也可以是一个颜色变量;第二个参数是颜色的透明度,其值是 0~1 之间。上面的代码转译出来:

.rgba {   color: rgba(255, 51, 102, 0.5);   background: rgba(255, 165, 0, 0.5);   border-color: rgba(0, 128, 0, 0.5); }

在来看一个调用前面定义的变量:

//SCSS .rgba {     color: rgba($color,.5);     background: rgba($bgColor,.5);     border-color: rgba($borderColor,.5); } 

编译出来的 css 代码:

//CSS .rgba {   color: rgba(255, 51, 102, 0.5);   background: rgba(255, 165, 0, 0.5);   border-color: rgba(0, 128, 0, 0.5); }

我想您应该会看到一个变化,通过 rgba 函数,指定一个透明值,将原色转换成另外一个颜色:

RGB颜色函数-Red()、Green()、Blue()函数

3、Red() 函数

red() 函数非常简单,其主要用来获取一个颜色当中的红色值。假设有一个 #f36 的颜色,如果你想得到 #f36 中的 red 值是多少,这个时候使用 red() 函数就能很简单获取。

>> red(#f36) 255

得到的值是”255”。(注意:在命令终端要先输入sass -i 命令)

4、Green() 函数

green() 函数和 red() 函数一样,用来获取某一个颜色值中 green 的值。同样拿 ”#f36“ 颜色为例:

>> green(#f36) 51

5、Blue() 函数

同理,blue() 函数是用来获取某一个颜色值中 blue 的值,如:

>> blue(#f36) 102

RGB颜色函数-Mix()函数

Mix 函数是将两种颜色根据一定的比例混合在一起,生成另一种颜色。其使用语法如下:

mix($color-1,$color-2,$weight);

$color-1 和 $color-2 指的是你需要合并的颜色,颜色可以是任何表达式,也可以是颜色变量。

$weight 为 合并的比例(选择权重),默认值为 50%,其取值范围是 0~1 之间。它是每个 RGB 的百分比来衡量,当然透明度也会有一定的权重。默认的比例是 50%,这意味着两个颜色各占一半,如果指定的比例是 25%,这意味着第一个颜色所占比例为 25%,第二个颜色所占比例为75%。

其使用方法也很简单:

mix(#f00, #00f) => #7f007f mix(#f00, #00f, 25%) => #3f00bf mix(rgba(255, 0, 0, 0.5), #00f) => rgba(63, 0, 191, 0.75)

在前面的基础上,做一个修改:

//SCSS $color1: #a63; $color2: #fff; $bgColor1: #f36; $bgColor2: #e36; $borderColor1:#c36; $borderColor2:#b36;  .mix {     background: mix($bgColor1,$bgColor2,.75);     color: mix($color1,$color2,.25);     border-color: mix($borderColor1,$bgColor2,.05); }

编译的 css 代码:

//CSS .mix {     background: #ee3366;     color: #fefefe;     border-color: #ed33 }

看下对比效果:

这就是 Mix 函数的工作原理,在函数中指定三个函数,前两个函数是你想混合的颜色(记住,你可以通过颜色变量、十六进制、RGBA、RGB、HSL 或者 HSLA 颜色值)。第三个参数是第一种颜色的比例值。

时间: 2024-08-10 19:50:47

RGB颜色函数-RGB()颜色函数的相关文章

2-4 Sass的函数功能-颜色函数

RGB颜色函数-RGB()颜色函数 在 Sass 的官方文档中,列出了 Sass 的颜色函数清单,从大的方面主要分为 RGB , HSL 和 Opacity 三大函数,当然其还包括一些其他的颜色函数,比如说 adjust-color 和 change-color 等.在这章节中,将主要和大家一起探讨 Sass 颜色函数中常见的 RGB.HSL 和 Opacity 函数. 1.RGB颜色函数 RGB 颜色只是颜色中的一种表达式,其中 R 是 red 表示红色,G 是 green 表示绿色而 B 是

十六进制颜色和RGB互转

dd //颜色互转 //十六进制颜色值域RGB格式颜色值之间的相互转换 //------------------------------------- //十六进制颜色值的正则表达式 var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; /* RGB颜色转换为16进制 */ String.prototype.colorHex = function(){     var that = this;     if(/^(rgb|RGB)/.test(that)

十六进制颜色转换RGB对照表

十六进制颜色转换RGB对照表 版权声明:本文为博主原创文章,未经博主允许不得转载.

颜色的RGB值

        各种金属颜色的RGB值,正确的颜色会有更好的表现效果 铝箔 180,180,180 铝箔(钝) 180,180,180 铝 220,223,227 磨亮的铝 220,223,227 黄铜 191,173,111 磨亮的黄铜 191,173,111 镀铬合金 150,150,150  镀铬合金2 220,230,240  镀铬铝 220,230,240  镀铬塑料 220,230,240  镀铬钢 220,230,240   纯铬 220,230,240   铜 186,110,6

常用颜色的RGB值

RGB颜色表 白色:rgb(255,255,255) 黑色:rgb(0,0,0) 红色:rgb(255,0,0) 绿色:rgb(0,255,0) 蓝色:rgb(0,0,255) 青色:rgb(0,255,255) 紫色:rgb(255,0,255) 调整相关数字,便可以得到深浅不一的各种颜色. 颜色样式 RGB数值 颜色代码 颜色样式 RGB数值 颜色代码 黑色 0,0,0 #000000 白色 255,255,255 #FFFFFF 象牙黑 88,87,86 #666666 天蓝灰 202,2

android 里面的颜色的RGB

android 里面的value下面的 color 常用的一些颜色的RGB值. <color name="white">#FFFFFF</color><!--白色 --> <color name="ivory">#FFFFF0</color><!--象牙色 --> <color name="lightyellow">#FFFFE0</color><

RGB颜色转换十六进制颜色

RGB色彩模式是工业界的一种颜色标准,是通过对红(R).绿(G).蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红.绿.蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一. RGB色彩模式使用RGB模型为图像中每一个像素的RGB分量分配一个0~255范围内的强度值.RGB图像只使用三种颜色,就可以使它们按照不同的比例混合,在屏幕上呈现16777216(256 * 256 * 256)种颜色. http://www.

Android内置颜色及其它颜色RGB对照表

参考:http://blog.csdn.net/feiyangxiaomi/article/details/38338305 我们在平时开发时经常要用到各种颜色,有了下面这两张表,妈妈再也不用担心你的配色问题了. 一:内置颜色: public static final int BLACK Added in API level 1 Constant Value: -16777216 (0xff000000)        public static final int BLUE Added in 

常用颜色的RGB分布

RGB色彩模式是工业界的一种颜色标准,它通过对红(RED).绿(GREEN).蓝(BLUE)三种基本颜色的相互组合从而叠加出各种颜色.RGB色彩模式为每一个红.绿.蓝分类了0-255范围内的亮度值. RGB色彩模式通常RGB(0,0,0)的格式来表示颜色,括号中的3个数字分别表示红.绿.蓝的亮度值,常用的颜色的RGB颜色分布有以下这些: 品红色 (255,0,255) 蓝色 (0,0,255) 青色 (0,255,255) 绿色 (0,255,0) 黄色 (255,255,0) 红色 (255,