Sass函数--颜色函数--HSL函数

HSL函数简介
HSL颜色函数包括哪些具体的函数,所起的作用是什么:

  • hsl($hue,$saturation,$lightness):通过色相(hue)、饱和度(saturation)和亮度(lightness)的值创建一个颜色;
  • hsla($hue,$saturation,$lightness,$alpha):通过色相(hue)、饱和度(saturation)、亮度(lightness)和透明(alpha)的值创建一个颜色;
  • hue($color):从一个颜色中获取色相(hue)值;
  • saturation($color):从一个颜色中获取饱和度(saturation)值;
  • lightness($color):从一个颜色中获取亮度(lightness)值;
  • adjust-hue($color,$degrees):通过改变一个颜色的色相值,创建一个新的颜色;
  • lighten($color,$amount):通过改变颜色的亮度值,让颜色变亮,创建一个新的颜色;
  • darken($color,$amount):通过改变颜色的亮度值,让颜色变暗,创建一个新的颜色;
  • saturate($color,$amount):通过改变颜色的饱和度值,让颜色更饱和,从而创建一个新的颜色
  • desaturate($color,$amount):通过改变颜色的饱和度值,让颜色更少的饱和,从而创建出一个新的颜色;
  • grayscale($color):将一个颜色变成灰色,相当于desaturate($color,100%);
  • complement($color):返回一个补充色,相当于adjust-hue($color,180deg);
  • invert($color):反回一个反相色,红、绿、蓝色值倒过来,而透明度不变。
 1 >> hsl(200,30%,60%) //通过h200,s30%,l60%创建一个颜色
 2 #7aa3b8
 3 >> hsla(200,30%,60%,.8)//通过h200,s30%,l60%,a80%创建一个颜色
 4 rgba(122, 163, 184, 0.8)
 5 >> hue(#7ab)//得到#7ab颜色的色相值
 6 195deg
 7 >> saturation(#7ab)//得到#7ab颜色的饱和度值
 8 33.33333%
 9 >> lightness(#7ab)//得到#7ab颜色的亮度值
10 60%
11 >> adjust-hue(#f36,150deg) //改变#f36颜色的色相值为150deg
12 #33ff66
13 >> lighten(#f36,50%) //把#f36颜色亮度提高50%
14 #ffffff
15 >> darken(#f36,50%) //把#f36颜色亮度降低50%
16 #33000d
17 >> saturate(#f36,50%) //把#f36颜色饱和度提高50%
18 #ff3366
19 >> desaturate(#f36,50%) //把#f36颜色饱和度降低50%
20 #cc667f
21 >> grayscale(#f36) //把#f36颜色变成灰色
22 #999999
23 >> complement(#f36)
24 #33ffcc
25 >> invert(#f36)
26 #00cc99

HSL 函数中最常见的应该是 lighten()、darken()、saturate()、desaturate()、grayscale()、complement()和 invert() 几个函数。

HSL函数-lighten()
lighten() 和 darken() 两个函数都是围绕颜色的亮度值做调整的,其中 lighten() 函数会让颜色变得更亮,与之相反的 darken() 函数会让颜色变得更暗。这个亮度值可以是 0~1 之间,不过常用的一般都在 3%~20% 之间。
首先定义一个颜色变量:

$baseColor: #ad141e;

使用 lighten() 和 darken() 函数来修改 10% 的亮度值:

1 //SCSS
2 .lighten {
3     background: lighten($baseColor,10%);
4 }
5 .darken{
6     background: darken($baseColor,10%);
7 }

编译出来的 css 代码:

1 //CSS
2 .lighten {
3     background: #db1926;
4 }
5 .darken {
6     background: #7f0f16;
7 }

使用函数 lightness() 函数来验证一下三个颜色之间亮度值的变化:

>> lightness(#ad141e) //原色的亮度值
37.84314%
>> lightness(#db1926) //在原色的亮度值基础上增加10%
47.84314%
>> lightness(#7f0f16) //在原色的亮度值基础上减少10%
27.84314%

当颜色的亮度值接近或大于 100%,颜色会变成白色;反之颜色的亮度值接近或小于 0 时,颜色会变成黑色。

1 //SCSS
2 $baseColor:#ad141e;
3 .lighten {
4     background: lighten($baseColor,70%);
5 }
6 .darken{
7     background: darken($baseColor,40%);
8 }

编译出来的 css 代码:

1 //CSS
2 .lighten {
3     background: white;
4 }
5 .darken {
6     background: black;
7 }

HSL函数-saturate()
saturate()desaturate()这两个函数是通过改变颜色的饱和度来得到一个新的颜色。

1 //SCSS
2 $baseColor: #ad141e;
3 .saturate {
4     background: saturate($baseColor,30%); //在原色饱和度基础上增加饱和度
5 }
6 .desaturate {
7     background: desaturate($baseColor,30%);//在原色饱和度基础上减少饱和度
8 }

编译出来的 css 代码:

1 //CSS
2 .saturate {
3     background: #c1000d;
4 }
5 .desaturate {
6     background: #903137;
7 }

颜色变了。同样使用 saturation() 函数在终端中进行计算一下,有什么样的变化:

1 >> saturation(#ad141e) //原色的饱和度
2 79.27461%
3 >> saturation(#c1000d) //在原色饱和度基础上增加30%,超过100%时按100%计算
4 100%
5 >> saturation(#903137) //在原色饱和度基础上减少30%,小于0时按0计算
6 49.2228%

HSL函数-adjust-hue()函数
通过调整颜色的色相换算一个新颜色。他需要一个颜色和色相度数值。通常这个度数值是在 -360deg 至 360deg 之间,当然了可以是百分数:

1 //SCSS
2 $baseColor: #ad141e;
3 .adjust-hue-deg {
4     background: adjust-hue($baseColor,30deg);
5 }
6 .adjust-hue-per {
7     background: adjust-hue($baseColor,30%);
8 }

编译出的 css 代码:

1 //CSS
2 .adjust-hue-deg {
3     background: #ad5614;
4 }
5 .adjust-hue-per {
6     background: #ad5614;
7 }

可以通过 hue() 函数得到颜色转换前后的色相值:

>> hue(#ad141e) //原颜色色相值
356.07843deg
>> hue(#ad5614) //在原色色相基础上增加30deg
25.88235deg

HSL 颜色表达方式上,色相是从 -360 和 360 之间,负值逆时针转,正值顺时针转。在这个实例中,原色的色相值约 356deg,加上 30deg 后,新颜色变成了 386deg,但我们的色盘中并没有比 360deg 更大的值,此时新颜色的值也并不会是386deg,那将怎么办呢?其实很简单,当值大于 360deg时,表示色盘转完了一圈,继续顺时针转余下的值(这里是 26deg),那么这个继续转的值就是新颜色的色相值。反之,得到的负数值也是一样的道理。

HSL函数-grayscale()函数
这个函数会把颜色的饱和度值直接调至 0%,所以此函数与 desaturate($color,100%) 所起的功能是一样的。一般这个函数能将彩色颜色转换成不同程度的灰色。

1 //SCSS
2 $baseColor: #ad141e;
3 .grayscale {
4     background: grayscale($baseColor);
5 }
6 .desaturate {
7     background: desaturate($baseColor,100%);
8 }

编译出来的 css 代码:

1 //CSS
2 .grayscale {
3     background: #616161;
4 }
5 .desaturate {
6     background: #616161;
7 }

看看计算出来的 HSL 各个值的变化:

 1 >> hue(#ad141e)
 2 356.07843deg
 3 >> hue(#616161)
 4 0deg
 5 >> saturation(#ad141e)
 6 79.27461%
 7 >> saturation(#616161)
 8 0%
 9 >> lightness(#ad141e)
10 37.84314%
11 >> lightness(#616161)
12 38.03922%

grayscale() 函数处理过的颜色,其最大的特征就是颜色的饱和度为 0。

时间: 2024-08-02 23:17:44

Sass函数--颜色函数--HSL函数的相关文章

Sass关于颜色函数的乐趣

阅读目录 1. 了解RGB和HSL颜色标准 2. RGB函数 3. HSL函数 4. Opacity函数 5. 其他颜色函数 6. 一个简单的应用 在Sass中,定义了很多现成的函数,可供我们使用.在最初使用Sass的时候,用的最多的颜色函数就是lighten($color, $amount)和darken($color, $amount),对于其他的函数,少之又少,真是弱爆了,有木有. 切图的时候,我的颜色全部是通过PS的吸管工具获取的,之后复制粘贴即可.如果我们熟悉了颜色标准,那以后我们对颜

Sass函数--颜色函数--Opacity函数

Opacity函数简介 在 CSS 中除了可以使用 rgba.hsla 和 transform 来控制颜色透明度之外,还可以使用 opacity 来控制,只不过前两者只是针对颜色上的透明通道做处理,而后者是控制整个元素的透明度. 在 Sass 中,也提供了系列透明函数,只不过这系列的透明函数主要用来处理颜色透明度:  alpha($color) /opacity($color):获取颜色透明度值: rgba($color, $alpha):改变颜色的透明度值: opacify($color, $

函数的上下文就是函数里面的this是谁

规律1:函数用圆括号调用,函数的上下文是window对象 比如小题目: function fun(){ var a = 888; alert(this.a); //实际上访问的是window.a } var a = 666; fun(); //弹出666 函数function fun(){}的上下文是什么!不要看它怎么定义,要看它怎么调用!!此时是fun()函数名加上圆括号直接调用,此时上下文就是window对象! 而我们知道:所有的全局变量都是window对象的属性,(注意:函数里面的局部变量

day05匿名函数,内置函数,二分法,递归,模块

yield作为表达式来使用的方式 #grep -rl 'python /root """ 查找root下文件中含有python的文件 """ import os def init(func): def wrapper(*args,**kwargs): g=func(*args,**kwargs) next(g) return g return wrapper @init def search(target): while True: search

深入浅出剖析C语言函数指针与回调函数(二)

上一篇博文的地址: http://blog.csdn.net/morixinguan/article/details/65494239 这节,我们来看看函数指针与回调函数在Linux内核中的应用. 从上节我们了解到,函数指针和回调函数在开发者和用户之间的一个例子,那么这节,我将引用Linux内核中文件操作结构体来详细的说明. 我们首先来看到这个结构体,这段代码位于linux内核的include/linux/fs.h中,由于代码众多,我只截取几个最基本的例子: File_operations文件操

5.初识python装饰器 高阶函数+闭包+函数嵌套=装饰器

一.什么是装饰器? 实际上装饰器就是个函数,这个函数可以为其他函数提供附加的功能. 装饰器在给其他函数添加功能时,不会修改原函数的源代码,不会修改原函数的调用方式. 高阶函数+函数嵌套+闭包 = 装饰器 1.1什么是高阶函数? 1.1.1函数接收的参数,包涵一个函数名. 1.1.2 函数的返回值是一个函数名. 其实这两个条件都很好满足,下面就是一个高阶函数的例子. def test1(): print "hamasaki ayumi" def test2(func): return t

数组指针、指针数组、函数指针、指针函数 -----笔记

1.数组的四种访问方式 定义数组 a[]; 指针 *p 指向数组a; (1) 利用数组的下表进行访问 a[i]; (2) 数组名+地址的偏移量i *(a+i) (3) 利用指针 p 进行下表访问 p[i] (4) 指针p + 地址的偏移量i *(p+i) 一维数组数组名:相当于一个单指针 2. 数组指针(指针)     指针数组(数组) 函数指针(指针)     指针函数(函数)    -------->只看后边两个字就能够区分是指针还是数组或函数 _______________________

程序代码中退出函数exit()与返回函数return ()的区别

  exit(0):正常运行程序并退出程序:   exit(1):非正常运行导致退出程序:   return():返回函数,若在主函数中,则会退出函数并返回一值.  解析: 1. return返回函数值,是关键字: exit 是一个函数. 2. return是语言级别的,它表示了调用堆栈的返回:而exit是系统调用级别的,它表示了一个进程的结束. 3. return是函数的退出(返回):exit是进程的退出. 4. return是C语言提供的,exit是操作系统提供的(或者函数库中给出的).ex

信号(三)---早期signal函数和现代signal函数的一些对比

使用signal函数的一些缺点: 由于signal函数调用成功时会返回原来信号处理程序的指针,所以如果我想要利用signal函数来获取原先信号处理程序的指针的话,必须要先去改变其信号处理方式.如下图所示 在早期的signal函数的实现中,使用signal函数安装的信号处理函数只能使用一次:在第一次捕捉到该信号的时候,就去执行安装的信号处理函数,同时内核会将该信号的信号处理方式修改为默认方式.下次进程再次收到这个信号的时候,进程将会执行信号的默认动作.但是现在的signal函数的实现并不是这样的,