CSS hsl() 函数

CSS hsl() 语法

在传统的 CSS 中,hsl() 函数用于通过色相(hue)、饱和度(saturation)和亮度(lightness)来定义颜色。

在最新版本的 CSS 中,hsl() 和 hsla() 这两个函数已经合并了。在传统的 CSS 中,hsl() 函数不支持透明度。但在最新的 CSS(CSS Color Level 4)中,hsl() 已经支持设置透明度了。

语法:

hsl(hue, saturation, lightness, alpha)

说明:

hsl() 函数接受以下 4 个参数。

  • 色相(hue):是一个角度值,取值范围为 0 到 360 。
    • 0(或 360)表示红色。。
    • 120 表示绿色。
    • 240 表示蓝色。
  • 饱和度(saturation):是一个百分比值,取值范围为 0% 到 100%。
    • 0% 表示灰色(无色)。
    • 100% 表示完全饱和。
  • 亮度(lightness):是一个百分比值,取值范围为 0% 到 100%。
    • 0% 表示黑色。
    • 100% 表示白色。
    • 50% 表示正常亮度。
  • 透明度(alpha):颜色的不透明程度,取值范围是 0 到 1(也可以是 0% 到 100%)。
    • 0 表示完全透明。
    • 1 表示完全不透明。

示例:

/* 不带 alpha */
hsl(0, 100%, 50%);    /* 红色 */
hsl(120, 100%, 50%);  /* 绿色 */
hsl(240, 100%, 50%);  /* 蓝色 */
hsl(0, 0%, 50%);    /* 灰色 */

/* 带 alpha */
hsl(0, 100%, 50%, 0.5);    /* 半透明红色 */
hsl(120, 100%, 50%, 0.3);  /* 透明绿色 */
hsl(240, 100%, 50%, 1);    /* 不透明蓝色 */

对于 hsl() 函数,小伙伴们需要清楚以下几点:

  • hsl() 函数可以用于任何接受颜色值的 CSS 属性,比如 colorbackground-colorborder-color 等。
  • hsl() 比 rgb() 更加直观,它适合调整色调、饱和度或亮度。例如,如果你想使颜色变得更鲜艳,只需要增加饱和度即可;想让颜色变亮或变暗,只需要调整亮度即可。

CSS hsl() 摘要

属于 CSS 函数
使用频率
兼容性 查看
官方文档 查看
MDN 查看

CSS hsl() 示例

接下来,我们通过几个简单的例子来讲解一下 CSS hsl() 函数是如何使用的。

示例 1:hsl() 基本用法

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 200px;
            height: 100px;
            background-color: hsl(0, 100%, 50%);    /* 红色 */
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

hsl() 基本用法

分析:

在上面例子中,我们使用 hsl() 来为 div 元素设置背景颜色。hsl(120, 100%, 50%) 表示:

  • 色相为 120 度(绿色)。
  • 饱和度为 100%(完全饱和)。
  • 亮度为 50%(正常亮度)。

最终,显示的颜色是 “纯红色” 。

示例 2:hsl() 实现不同的红色变体

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        .container {
            display: flex;
            gap: 10px;
        }
        div {
            width: 100px;
            height: 100px;
            border: 1px solid #ccc;
        }
        .box1 { background-color: hsl(0, 50%, 50%); }     /* 低饱和度红色 */
        .box2 { background-color: hsl(0, 100%, 50%); }    /* 纯红色 */
        .box3 { background-color: hsl(0, 100%, 25%); }    /* 深红色 */
    </style>
</head>
<body>
    <div class="container">
        <div class="box1"></div>
        <div class="box2"></div>
        <div class="box3"></div>
    </div>
</body>
</html>

页面效果如下图所示。

hsl() 展示不同红色变体

分析:

在这个例子中,我们通过调整 hsl() 函数的饱和度和亮度来显示不同的红色变体。

  • box1 使用较低饱和度(50%)生成柔和红色。
  • box2 使用 100% 饱和度和 50% 亮度生成纯红色。
  • box3 使用较低亮度(25%)生成深红色。

示例 3:hsl() 带 alpha

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 200px;
            height: 100px;
            background-color: hsl(240, 100%, 50%, 0.5);
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

hsl() 带 alpha

上一篇: rgba()

下一篇: hsla()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号