CSS 中的 hsl() 函数用于使用红色、绿色和蓝色通道定义颜色,根据这些颜色通道的色调、饱和度和亮度分量。它允许您通过指定这三种原色中每种颜色的强度来指定颜色。
要添加颜色透明度,可以将可选的 alpha 分量传递给 hsl() 函数。
使用单个公式,可以使用 hsl() 定义互补色。如果颜色的色相角为 0,则其补色的色相角为 180deg - 0。
遗留函数 hsla() 是函数的别名hsl() 并且它们都接受相同的参数并以相同的方式运行。
可能的值
hsl() 函数的函数符号为 hsl(H S L[ / A]).
H:可以包含表示色调角度的任一格式:
<number>:0 到 255 之间的任何数字。
<angle>:0deg 到 360deg 之间的任何值。
keyword none
S:可以包含表示饱和度的任一格式:
<percentage>:0%(完全饱和)和 100%(完全不饱和)之间的任何值。
keyword none
L:可以包含表示亮度的任一格式:
<percentage>:0%(全黑)、100%(全白)和 50%(正常)之间的任何值。
keyword none
A:表示颜色的透明度。它是一个可选值。
<alpha-value>:0 到 1 之间的任何数字,其中 1 对应于完全不透明,0 对应于完全透明。
keyword none
红、绿、蓝分量的值为在序列化中四舍五入,因为函数符号将其序列化为 sRGB。
语法
hsl(60deg 25% 50%) | hsl(60deg, 25%, 50%) | hsl(60deg 25% 50% / 0.5)
CSS hsl() - 带或不带 alpha 值
以下是显示 hsl() 函数用法的示例,其中所有三个值都在带或不带 alpha 值(数字值)的情况下传递:
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
border: 2px solid black;
margin-bottom: 10px;
}
.color-hsl-nocomma{
background-color: hsl(70deg 60% 80%);
}
.color-hsl-comma{
background-color: hsl(20deg, 90%, 20%);
color: white;
}
.color-hsl-alpha-number{
background-color: hsla(20deg 80% 60% /1);
}
.color-hsl-alpha-percent{
background-color: hsla(90deg 80% 60% /0.6);
}
</style>
</head>
<body>
<div class="color-hsl-nocomma">hsl(70deg 60% 80%)</div>
<div class="color-hsl-comma">hsl(20deg, 90%, 20%)</div>
<div class="color-hsl-alpha-number">hsla(20deg 80% 60% /1)</div>
<div class="color-hsl-alpha-percent">hsla(90deg 80% 60% /0.6)</div>
</body>
</html>
CSS hsl() : 使用 'none' 作为其中之一值
以下是显示 hsl() 函数用法的示例,其中值之一为none(hue, saturation, lightness 和 alpha 值):
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
border: 2px solid black;
margin-bottom: 10px;
}
.hsl-hue-none{
background-color: hsl(none 60% 80%);
}
.hsl-sat-none{
background-color: hsl(20deg, none, 20%);
}
.hsl-light-none{
background-color: hsla(20deg 80% none /1);
color: white;
}
.hsl-alpha-none{
background-color: hsla(90deg 80% 60% /none);
}
</style>
</head>
<body>
<div class="hsl-hue-none">hsl(none 60% 80%)</div>
<div class="hsl-sat-none">hsl(20deg, none, 20%)</div>
<div class="hsl-light-none">hsla(20deg 80% none /1)</div>
<div class="hsl-alpha-none">hsla(90deg 80% 60% /none)</div>
</body>
</html>
CSS hsl( ) 使用 conic-gradient()
以下示例展示了 conic-gradient() 函数中 hsl() 函数的用法:
<html>
<head>
<style>
div {
width: 100px;
height: 100px;
border: 2px solid black;
margin-bottom: 10px;
}
.hsl-conic{
background: conic-gradient(hsl(270 100% 50%),
hsl(180 100% 50%),
hsl(0 100% 50%),
hsl(90 100% 50%));
}
</style>
</head>
<body>
<p>hsl() with conic-gradient()</p>
<div class="hsl-conic"></div>
</body>
</html>