CSS3 HSL()详解:
这是CSS3新增的颜色表示模式。
在CSS2中,只有RGB(red、green和blue的缩写)和十六进制两种颜色模式。
为了能够支持颜色的透明度,CSS3新增了RGBA(A是Alpha缩写)。
但是无论是RGB、RGBA还是十六进制颜色值,都无法对颜色有一个直观的感受,毕竟大多数人都没有超凡的艺术细胞。
所以CSS3又新增了HSL颜色表示模式和与透明度相关的HSLA模式。
在介绍HSL颜色模式之前,先来对RGB和十六进制颜色值进行一下简单介绍:
一.RGB颜色模式:
RGB模式表示颜色是由red、green和blue三种颜色混合而成。
每一种颜色的最小值是0,最大值是255。
0表示没有对应的颜色,255表示纯色。
例如rgb(255,0,0)表示纯红色,rgb(0,255,0)纯绿色,rgb(0,0,255)纯蓝色,rgb(255,255,255)黑色。
二.十六进制颜色颜色模式:
十六进制颜色值简称HEX,颜色值前面带有#号,格式可以描述为如下:
#RRGGBB
每两位上的值就是RGB上的数字转换16进制后的值。
三.HSL颜色模式:
HSL就是色调(Hue)、饱和度(Saturation)和亮度(Lightness)的缩写。
通过三个颜色通道的叠加实现调节颜色的功能。
H:0(或360)表示红色,120表示绿色,240表示蓝色,也可取其他数值来指定颜色。取值为:0 - 360。
S:取值为:0.0% - 100.0%;0% 意味着灰色,而 100% 是全彩
L:取值为:0.0% - 100.0%;0% 是黑色,100% 是白色。
看一段代码实例,它演示了色调的分步规律:
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂蚁部落</title> <style> section{ position:relative; } div{ width:1px; height:150px; float:left; } </style> <script> window.onload=function(){ var container = document.querySelector('section'); for (var index = 0; index < 360; index++) { var div = document.createElement('div'); div.style.background = 'hsl(' + index + ',100%, 50%)'; container.appendChild(div); } } </script> </head> <body> <section></section> </body> </html>
效果图:是不是红、橙、黄、绿、青、蓝、紫的分布规律非常清晰了。
下面是演示颜色饱和度的代码:
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂蚁部落</title> <style> section{ position:relative; } div{ width:1px; height:150px; float:left; } </style> <script> window.onload=function(){ var container = document.querySelector('section'); for (var index = 0; index < 100; index++) { var div = document.createElement('div'); div.style.background = 'hsl(100,' + index + '%, 50%)'; container.appendChild(div); } } </script> </head> <body> <section></section> </body> </html>
效果图:饱和度从灰色到全彩的变化也是一目了然。
下面对于亮度的演示,代码如下:
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂蚁部落</title> <style> section{ position:relative; } div{ width:1px; height:150px; float:left; } </style> <script> window.onload=function(){ var container = document.querySelector('section'); for (var index = 0; index < 100; index++) { var div = document.createElement('div'); div.style.background = 'hsl(100,100%, ' + index + '%)'; container.appendChild(div); } } </script> </head> <body> <section></section> </body> </html>
效果图:
下面再看一下HSLA的使用,这个就比较简单了,A就是设置透明度的,代码实例如下:
<!doctype html> <html> <head> <meta charset="utf-8"> <meta name="author" content="http://www.softwhy.com/" /> <title>蚂蚁部落</title> <style> div { margin:10px; width:150px; height:50px; text-align:center; line-height:50px; } div:first-child { background-color: hsla(100,100%,54%,0.3) } div:last-child { background-color: hsl(100,100%,54%) } </style> </head> <body> <div>蚂蚁部落</div> <div>蚂蚁部落</div> </body> </html>
效果图:
CSS3 HSL()详解:的更多相关文章
- 转:【译】CSS3:clip-path详解
我的一个学生,Heather Banks,想要实现他在Squarespace看到的一个效果: 根据她的以往经验,这个网站的HTML和CSS是完全在她的能力范围以内,于是我帮助她完成了这个效果.显示na ...
- CSS3过渡详解-遁地龙卷风
第二版 0.环境准备 (1)过渡需要浏览器的支持,使用这些属性要加上浏览器厂商的前缀,我用的chrome49已经不需要前缀了, -o- Opera -webkit- Safari.Chrome -mo ...
- css3选择器详解
css中除了早先最早的,ID选择器,class选择器一些以外在css3中新加入了新的选择器,新选择器的使用大大的方便了我们的编程,下面我就说一些css3的选择器的使用方法, p 选择了所有 ...
- CSS3 border-image详解、应用
一.border-image的兼容性 border-image可以说是CSS3中的一员大将,将来一定会大放光彩,其应用潜力真的是非常的惊人.可惜目前支持的浏览器有限,仅Firefox3.5,chrom ...
- CSS3 Filter详解(改变模糊度 亮度 透明度等方法)
CSS3 Filter(滤镜)属性提供了提供模糊和改变元素颜色的功能.CSS3 Fitler 常用于调整图像的渲染.背景或边框显示效果. -webkit-filter是css3的一个属性,Webkit ...
- 第四十一课:CSS3 animation详解
animation是css3的另一个重要的模块,它成型比transition晚,吸取了Flash的关键帧的理念,实用性高. animation是一个复合样式,它可以细分为8个更细的样式. (1)ani ...
- css3学习--css3动画详解二(3d效果)
一.设置3D场景 perspective:800 //浏览器到物体的距离(像素)perspective-origin:50% (x轴) 50% (y轴) //视点的位置 transf ...
- css3学习--css3动画详解一(animation属性)
***介绍的属性并不完全,写的都是我认为容易混淆的难点属性,所以属性会在最后综合案例展示~ 一.Keyframes介绍: Keyframes被称为关键帧,其类似于Flash中的关键帧.在CSS3中其主 ...
- CSS3圆角详解
一.CSS3圆角的优点 传统的圆角生成方案,必须使用多张图片作为背景图案.CSS3的出现,使得我们再也不必浪费时间去制作这些图片了,而且还有其他多个优点: * 减少维护的工作量.图片文件的生成.更新. ...
随机推荐
- spring中用到哪些设计模式
1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了: 2.模版模式,这个也很明显,在各种BeanFactory以及ApplicationCon ...
- cf 712E Memory and Casinos
题意:有一行$n(n \leq 100000)$个方格,从左往右第$i$个方格的值为$p_i(p_i = \frac{a}{b}, 1 \leq a < b \leq 1e9)$,有两种操作,一 ...
- 外国javascript资源搜索
https://www.javascripting.com/search?q=canvas
- [Linux] vimdiff 快速比较和合并少量文件
纯文本文件比较和合并工具一直是软件开发过程中比较重要的组成部分,vimdiff 能够在比较出来的多处差异之间快速定位,很容易的进行文件合并操作.在需要快速比较和合并少量文件的时候,vimdiff是很好 ...
- js正则表达式
正则表达式分析页面:https://regexper.com/ 可以很清楚的分析正则,加深理解 var reg=/\bis\b/; 'He is a boy.This is a dog.Where i ...
- URL中的保留和不安全字符
书写URL时要使用US-ASCII字符集可以显示的字符. http://www.google.com 如果需要在URL中使用不属于此字符集的字符,就要使用特殊的符号对该字符进行编码. 如:最常使用的空 ...
- android appwigt
package com.example.test1; import android.os.Bundle; import android.app.Activity; import android.con ...
- 连接MySQL错误:Can't connect to MySQL server (10060)
问题原因: 导致些问题可能有以下几个原因: 1.网络不通: 2.服务未启动: 3.防火墙端口未开放: ----防火墙端口未开放的可能性比较大
- Arduino 极速入门系列 - 光控灯(1)- 关于理论和 LED 那些事
点个 LED 闪亮好像太单调,这次来个光控 LED 灯.这个其实不需要 Arduino 也能做,这次只是用来演示一下 PWM 在 Arduino 里面的做法.PWM 原理后面会解释.这次用充电宝提供 ...
- ElasticSearch与Spring Boot集成问题
1.None of the configured nodes are available 或者 org.elasticsearch.transport.RemoteTransportException ...