CSS 的 hsl() 和 hsla() 函数(设置颜色的方式之一)

article/2025/10/23 0:30:18

一:CSS中的 hsl()函数:

1、定义与用法:hsl() 函数使用色相、饱和度、亮度来定义颜色。

HSL 即:色相(Hue)、饱和度(Saturation)、亮度(Lightness)。

  • 色相(H)是色彩的基本属性,就是平常所说的颜色名称,如红色、黄色等。
  • 饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取0 ~ 100%的数值。
  • 亮度(L),取0 ~ 100%,增加亮度,颜色会向白色变化;减少亮度,颜色会像黑色变化。

HSL是一种将 RGB 色彩模型中的点在圆柱坐标系中的表示法,这两种表示法试图做到比基于笛卡尔坐标系的几何结构 RGB更加直观,通过HSL 的值的逐渐变化,可以得到非常相近的颜色。

.test{background-color:hsl(360,50%,50%);
}

2、支持版本:CSS3

3、语法:hsl(hue,saturation,lightness) 参考链接

描述
hue-色相定义色相(0到360)-0(或360)为红色,120为绿色,240为蓝色
saturation-饱和度定义饱和度;0%为灰色,100%全白
lightness-亮度定义亮度0%为暗,50%为普通,100%为白

在这里插入图片描述
要理解HSL颜色,你首先需要从另一个角度来理解颜色,注意观察上面的色盘,你可以看到红、绿、蓝三种颜色。红色在最上面,被设置为0度,绿色是120度,蓝色是240度,他们将色盘分为三个部分,在它们的中间分别是黄色、青色和洋红(CMYK颜色系统),他们的角度分别为60度、180度和300度。

从色盘的顶部开始顺时针方向旋转,是彩虹的七彩颜色。从60度开始,分别是:黄色、绿色、青色、蓝色、洋红和红色。

HSL颜色就是指上面颜色色盘中的多少度的颜色值。

例如:紫色在蓝色(240%)和洋红(300%之间),所以他的HSL颜色是hsl(270,100%,50%)。如果想要紫色偏蓝,就要往色盘蓝色方向移动角度值,得到hsl(255,100%,50%)。

你会注意到角度后面还有两个百分比的值,第一个值是颜色的饱和度,也就是值颜色的强度。在色盘的最外层,颜色的饱和度为100%,最外层的颜色是最有 " 色彩 " 的。色盘越往中心移动颜色越灰,所以饱和度可以理解为:颜色距离灰色多远?HSL颜色的饱和度为0%时就变为相同的灰色。

例如:HSL饱和度值:hsl(45,x%,50%)
在这里插入图片描述
注:HSL颜色的两个百分比值必须同时包含饱和度和亮度值才能正常显示。

亮度是指颜色偏向于白色还是黑色,50%的亮度值表示颜色位于黑色和白色中间,这时颜色会基本保持原来的颜色不变。减少亮度会增加黑色调:当亮度为0%时颜色变为黑色。增加亮度会增加白色调:当亮度值为100%时颜色变为白色。

例如:HSL亮度值:hsl(90,100%,x%)
在这里插入图片描述
当你熟悉了上面色盘的颜色分布的时候,你会发现在CSS中使用HSL颜色会比使用RGB颜色更加容易和便于管理。有时候,使用HSL颜色会有一些优势,下面我们来说一下使用HLS到底会有哪些具体的应用场景呢?

二、HSL颜色在网站中的三个应用场景:参考链接

在某些时候,在CSS中使用HSL颜色会比其它颜色模式更有优势,下面我们将从三个方面来介绍在什么时候应该使用HSL颜色。

1、为网站颜色方案创建快速原型:

HSL颜色非常适合于插件网站的颜色方案,特别是开发者没有很大的把握和色彩理论的时候。HSL颜色通过一些简单的规则就可以创建适应任何需要的颜色模式。

例如:你想为你的网站快速的创建一个颜色方案,假如你的网站LOGO是橙色的,它对应的HSL颜色值为:hsl(30,90%,29%)
要生成一个互补色,你可以为色调值增加180度,在这个例子中,得到的HSL颜色的结果是:hsl(210,90%,29%)
在这里插入图片描述
下面来看看如何创建单色的配色方案:一个简单的方法是将饱和度值减去30%如果我们的基色是hsl(30,90%,29%),那么另外的两个颜色分别是hsl(0,90%,29%)和hsl(60,90%,29%)。
在这里插入图片描述
另外还可以配置三色方案:将基色的色调值递增120度即可。

上面简单的配置就得到三种网站颜色的配色方案,是不是非常快捷简单呢?

2、快速调整颜色:

如果你的网站使用的颜色模式时RGB模式或HEX颜色模式,那么当你想将网站颜色调整的亮一些的时候,你必须同时调整三个值,这些微调工作是非常烦人的,如果你是用的HSL颜色模式,那么工作就变得非常简单了:

body { background: hsl(60,100%,50%); }

你只需要调整一些亮度值就可以了

body { background: hsl(60,100%,40%); } 

如果你使用我们上面所说的HSL颜色方案,那么你就可以非常轻松的调整其它的颜色。

3、为样式创建快速颜色变体:

我们以一个带渐变色的圆点按钮为例子,它的基本样子如下图所示(只用webkit内核浏览器可以看到正确的样式)。它的CSS3代码如下,注意没有写浏览器厂商的前缀:(下面例子如果不懂可以了解一下radial-gradient()函数)
在这里插入图片描述

input { background-image:radial-gradient( hsla(0,100%,90%,1) 0%,hsla(0,100%,70%,1) 15%, hsla(0,100%,60%,.3) 28%,hsla(0,100%,30%,0) 70% );
}       

如果我们想将按钮渐变的颜色变为蓝色,我们只需要它的色调值即可:

input { background-image:radial-gradient( hsla(200,100%,90%,1) 0%,hsla(200,100%,70%,1) 15%, hsla(200,100%,60%,.3) 28%,hsla(200,100%,30%,0) 70% );
}

在这里插入图片描述
现在,新生成的蓝色光和原来的红色光的亮度和强度是相同的,只是色调值发生了一些变化。你可以非常轻松的将它修改为其它任何颜色。

4、上面的情况不应该使用HSL颜色吗?

答案是在你的网站必须指出IE8及以下的浏览器的时候,你不能够使用HSL颜色来作为你的网站颜色。Sass可以自动将HSL颜色转换为RGB颜色或HEX颜色。

三:CSS中的 hsla()函数:

1、定义与用法:hsla() 函数使用色相、饱和度、亮度、透明度来定义颜色。

HSLA 即:色相、饱和度、亮度、透明度(英语:Hue, Saturation, Lightness, Alpha )。

  • 色相(H)是色彩的基本属性,就是平常所说的颜色名称,如红色、黄色等。
  • 饱和度(S)是指色彩的纯度,越高色彩越纯,低则逐渐变灰,取 0-100% 的数值。
  • 亮度(L) 取 0-100%,增加亮度,颜色会向白色变化;减少亮度,颜色会向黑色变化。
  • 透明度(A) 取值 0~1 之间, 代表透明度。

2、支持版本:CSS3

3、语法:hsla(hue,saturation,lightness,alpha)

描述
hue-色相定义色相(0 到 360) - 0 (或 360) 为红色, 120 为绿色, 240 为蓝色
saturation - 饱和度定义饱和度; 0% 为灰色, 100% 全色
lightness - 亮度定义亮度 0% 为暗, 50% 为普通, 100% 为白
alpha - 透明度定义透明度 0(透完全明) ~ 1(完全不透明)

其实HSLA() 和 HSL()函数用法基本一致,只不过在HSL()的基础上添加一个透明效果。

感兴趣可以查看一下另一种设置颜色的模式:RGB模式


http://chatgpt.dhexx.cn/article/1TEXKDoh.shtml

相关文章

css rgba/hsla知识点讲解及半透明边框

一、RGBA(R,G,B,A) 参数: R:红色值。正整数 | |百分数 G:绿色值。正整数 | |百分数 B:蓝色值。正整数 | |百分数 A:Alpha透明度。取值0~1之间。 说明:此色彩模式与RGB相同,只是在RGB模式上新增了Alpha透明…

HSLA制作配色表

<!doctype html> <html lang"en"><head><meta charset"UTF-8"><title>HSLA制作配色表</title><style>.table-wrap {width: 400px;margin: 10px;float: left;}table {width: 400px;border: 1px solid #756c6c;bo…

css中hsla代表_hsla()函数以及CSS中的示例

css中hsla代表 Introduction: 介绍&#xff1a; The use of functions is very beneficial for web development and one must learn as many functions as they can, therefore keep learning functions for improving your knowledge and coding skills. Besides, you shoul…

rgba和hsla

在css3中可以用RGBA和HSLA,都可以用来在设置颜色的同时也可以设置它的透明度。RGBA指的是“红色、绿色、蓝色和Alpha透明度”&#xff08;Red-Green-Blue-Alpha&#xff09;&#xff0c;而HSLA则代表“色调、饱和度、亮度和Alpha透明度”&#xff08;Hue-Saturation-Lightness-…

CSS hsla函数

和ARGB一样&#xff0c;都是用来表示颜色的。表示的效果都是一样的&#xff0c;只是形式不同。 一般情况下&#xff0c;你是用不上的&#xff0c;因为一般用ARGB比较多&#xff0c;也更熟悉。但是有些书籍喜欢用这种形式&#xff0c;还是要了解一下的。 定义 hsla() 函数使用…

HSL值,HSLA,文档流,盒子模型等问题。

HSL和HSLA值 和上一篇文章中的rgb语法使用方法基本一样 H:色相&#xff0c;调节范围为0-360度&#xff0c;其实就是一个环&#xff0c;零度等于360度是红色&#xff0c;调节颜色。S&#xff1a;饱和度&#xff0c;调节颜色浓度&#xff0c;调节范围&#xff08;0%-100%&#x…

CSS中hsla的用法

hsla是css3引入的一个颜色表达方式&#xff0c;今天就来学习一下它的用法。 文章目录 1.什么是HSLA2.怎么去使用HSLA3.什么时候使用HSLA4.注意事项 1.什么是HSLA HSLA(H,S,L,A) H&#xff1a;Hue(色调)。0(或360)表示红色&#xff0c;120表示绿色&#xff0c;240表示蓝色&…

Gabor滤波器 pytorch实现

Gabor函数与人眼的生物作用相仿&#xff0c;尤其对于图片的方向和尺度特征可以很好的捕捉。所以&#xff0c;经常用于纹理、物体识别。对于Gabor的原理、公式不再赘述。 下面对Gabor滤波器用pytorch实现&#xff0c;并进行可视化&#xff1a; import math import torch import…

【youcans 的 OpenCV 例程200篇】193.基于Gabor 滤波器的特征提取

OpenCV 例程200篇 总目录-202205更新 【youcans 的 OpenCV 例程200篇】193.基于Gabor 滤波器的特征提取 6.5 Gabor 滤波器 Gabor 变换是一种加窗短时傅里叶变换&#xff0c;以高斯函数作为短时傅里叶变换的窗函数&#xff0c;因此可以在频域不同尺度、不同方向上提取特征。 G…

Python OpenCV实现Log Gabor滤波器(由LGHD描述符扩展)

引言 笔者在研究红外图像与可见光图像配准时接触到了很多描述符&#xff0c;其中关于LGHD描述符的Log Gabor滤波器很有意思&#xff0c;与大家分享 LGHD&#xff08;Log-Gabor Histogram Descriptor&#xff09; 描述符的思想是基于高频分量分布的描述符对于不同的非线性强度…

python实现Gabor滤波器-skimage(一)

什么是Gabor滤波器&#xff1f; Gabor滤波器是一种由正弦波调制的高斯核线性滤波器。Gabor滤波器的频率和方向表示与人类视觉系统相似。Gabor滤波器组通常用于计算机视觉和图像处理。特别适用于边缘检测和纹理分类。一个二维Gabor滤波器是一个由正弦平面波调制的高斯核函数。好…

二维gabor滤波器matlab,在matlab中使用可分离的Gabor滤波器

如果过滤器g可以表示为两个向量grow和gcol的乘法&#xff0c;则称为可分离过滤器。使用一维滤波器将二维滤波器的计算复杂度从O(M^2 N^2)降低到O(2M N^2)&#xff0c;其中M和N分别是滤波器掩码和图像的宽度(和高度)。 在this stackoverflow link中&#xff0c;我在空间域中编写…

gabor滤波器简要介绍

在经过一天的浏览csdn&#xff0c;博客园后&#xff0c;总算是对gabor滤波器有了一个大概的了解&#xff0c;所以趁还热着&#xff0c;赶紧记录一下。 写的话&#xff0c;先给自己梳理下要写什么吧&#xff1a; 1. 什么是gabor滤波器&#xff0c;公式定义 2. gabor滤波器的代码…

MATLAB---一维Gabor滤波器、gabor滤波器的实部与虚部图像、Gabor滤波器

%% 一维Gabor滤波器 clc,clear,close all % 清理命令区、清理工作区、关闭显示图形 warning off % 消除警告 feature jit off % 加速代码运行 x-4:0.01:4; t1; y1*exp(-(x.^2)./(sqrt(2*pi)*t^2)); plot(x,y,b,linewidth,2); hold on x1-4:0.01:4; y11*sin(9*x1pi…

有关Gabor滤波器

有关Gabor Gabor特征是一种可以用来描述图像纹理信息的特征。此外,Gabor小波对于图像的边缘敏感,\能够提供良好的方向选择和尺度选择特性,可以在频域不同尺度、不同方向上提取相关的特征。Gabor滤波器可以提取不同方向上的纹理信息。Gabor滤波器对于光照变化不敏感,能够提供…

基于Gabor滤波器的图像边缘检测实验

1 Gabor滤波算法原理 Gabor核函数定义&#xff1a; 式中&#xff1a;依次作为主轴方向上的高斯尺度、主轴方向正交的高斯尺度&#xff0c; 是滤波器的中心频率&#xff1b;是调制平面波以及高斯主轴旋转的角度&#xff0c;它沿着逆时针方向&#xff0c;和是常数。Gabor滤波器…

版本管理工具git常用命令

一、git是什么&#xff0c;⽤来做什么 git是分布式版本控制系统&#xff0c;⽤来进⾏版本管理 ⼆、git有什么特点 git VS svn git是分布式&#xff0c;svn是集中式。分布式版本系统的最⼤好处之⼀是在本地⼯作完全不需要考 虑远程库的存在&#xff0c;也就是有没有联⽹都可以…

Git 代码版本管理工具详解 进厂必备

目录 前言Git 概述什么是版本控制&#xff1f;为什么需要版本控制&#xff1f;版本控制工具集中式分布式 Git 工作机制Git安装Git 常用命令(部分)初始化本地库设置用户签名初始化本地库查看本地库状态***工作区代码编写***添加暂存区撤销工作区的修改***提交本地库***工作区修改…

代码版本管理工具Git

Git 的发展历史 在做一个项目工程的时候&#xff0c;代码总是不断地更新&#xff0c;于是你就可能一边写代码&#xff0c;一边就为你的代码创建了很多的版本文件夹&#xff0c;分别叫“项目 0.1”、“项目 0.2”、“项目 0.3”、“项目 1.0”之类的名字&#xff0c;让你可以区…

Git分布式版本管理工具

Git_1_概述 1.特性 能够记录历史版本,回退历史版本团队开发,方便代码合并 2.介绍(摘自维基百科) git是一个分布式版本控制软件&#xff0c;最初由林纳斯托瓦兹创作&#xff0c;于2005年以GPL许可协议发布。最初目的是为了更好地管理Linux内核开发而设计。应注意的是&#xf…