CSS hsla() 函数

CSS hsla() 语法

在 CSS 中,hsla() 函数通过色相(hue)、饱和度(saturation)、亮度(lightness)和透明度(alpha)来定义颜色。

需要注意的是,在最新版本的 CSS 中,hsla() 和 hsl() 这两个函数已经合并了。

语法:

hsla(hue, saturation, lightness, alpha)

说明:

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

  • hue(色相):表示颜色的类型,取值范围是 0 到 360 的角度(无单位)。
    • 0 或 360 表示红色。
    • 120 表示绿色。
    • 240 表示蓝色。
    • 色相值可以是负数或大于 360,浏览器会自动将其调整到 0 到 360 范围内。
  • saturation(饱和度):颜色的鲜艳程度,取值范围是 0% 到 100%。
    • 0% 表示灰色(没有颜色)。
    • 100% 表示最鲜艳的颜色。
  • lightness(亮度):颜色的明暗程度,取值范围是 0% 到 100%。
    • 0% 表示黑色。
    • 100% 表示白色。
    • 50% 表示正常亮度。
  • alpha(透明度):颜色的不透明程度,取值范围是 0 到 1(也可以是 0% 到 100%)。
    • 0 表示完全透明。
    • 1 表示完全不透明。

示例:

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

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

  • hsla() 可以与 var()calc() 等其他 CSS 函数结合一起使用。
  • hsla() 的结果是一个 “字符串” 类型的颜色值。
  • hsla() 适用于所有可以使用颜色值作为值的 CSS 属性,比如 colorbackground-colorborder-color 等。

CSS hsla() 摘要

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

CSS hsla() 示例

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

示例 1:hsla() 基本用法

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

页面效果如下图所示。

hsla() 基本用法

分析:

在这个例子中,hsla(240, 100%, 50%, 0.5) 表示定义了一个半透明的蓝色:

  • 色相 240。
  • 饱和度 100%。
  • 亮度 50%,透明度 50%)。

这种透明效果,可以使得背景色呈现出一种柔和的视觉效果。

示例 2:hsla() 结合 CSS 变量

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        :root {
            --base-hue: 120;
            --base-alpha: 0.7;
        }
        div {
            width: 200px;
            height: 100px;
            background-color: hsla(var(--base-hue), 80%, 60%, var(--base-alpha));
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

页面效果如下图所示。

hsla() 结合 CSS 变量动态调整透明度

分析:

在这个例子中,我们首先定义了 2 个 CSS 变量:--base-hue 和 --base-alpha。hsla(var(--base-hue), 80%, 60%, var(--base-alpha)) 表示:

  • 色相 120。
  • 饱和度 80%。
  • 亮度 60%。
  • 透明度 0.7。

使用 CSS 变量这种方式,适合用于统一管理和调整颜色样式。

示例 3:hsla() 用于文本颜色和边框颜色

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        p {
            color: hsla(0, 100%, 50%, 0.8);
            border: 2px solid hsla(0, 100%, 50%, 0.4);
            padding: 10px;
            width: 200px;
        }
    </style>
</head>
<body>
    <p>绿叶网 - 为好教程,全力以赴</p>
</body>
</html>

页面效果如下图所示。

hsla() 用于文本和边框

分析:

hsla(0, 100%, 50%, 0.8) 表示定义了一个稍微透明的红色,而 hsla(0, 100%, 50%, 0.4) 表示定义了一个更为透明的红色。

示例 4:hsla() 响应式调整透明度

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title></title>
    <style>
        div {
            width: 200px;
            height: 100px;
            background-color: hsla(300, 70%, 50%, 0.6);
        }
        @media (max-width: 1200px) {
            div {
                background-color: hsla(300, 70%, 50%, 0.9);
            }
        }
    </style>
</head>
<body>
    <div></div>
</body>
</html>

当浏览器尺寸大于 1200px 时,页面效果如下图 1 所示。当浏览器尺寸小于等于 1200px 时,页面效果如下图 2 所示。

hsla() 实现响应式透明度调整(1)

hsla() 实现响应式透明度调整(2)

分析:

hsla(300, 70%, 50%, 0.6) 表示定义了一个紫色背景(透明度 60%)。然后我们通过 CSS 媒体查询,使得当屏幕宽度小于等于 1200px 时,透明度变为 90%。

上一篇: hsl()

下一篇: color-mix()

给站长反馈

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

邮箱:lvyenet@vip.qq.com

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