SASS 中 HSL 和 RGB 颜色之间的转换

阅读时长 5 分钟读完

SASS 中 HSL 和 RGB 颜色之间的转换

在前端开发中,我们常常需要使用颜色来为页面着色。而在 SASS 中,我们可以使用 HSL(色相、饱和度、亮度)和 RGB(红、绿、蓝)这两种颜色格式来表示颜色。有时候,我们需要在不同的颜色格式之间进行转换。本文将详细介绍如何在 SASS 中进行 HSL 和 RGB 颜色之间的转换,并提供相应的代码示例。

一、HSL 和 RGB 颜色格式

HSL 颜色格式是由三个参数组成的,分别是色相(Hue)、饱和度(Saturation)和亮度(Lightness)。HSL 颜色格式的取值范围如下:

Hue:0-360,表示颜色色相的角度,取值为红色为 0°,绿色为 120°,蓝色为 240°。

Saturation:0-100,表示颜色的饱和度,取值为 0 表示灰色,100 表示完全饱和的颜色。

Lightness:0-100,表示颜色的亮度,取值为 0 表示黑色,100 表示白色。

RGB 颜色格式是由三个参数组成的,分别是红色、绿色和蓝色,取值范围都是 0-255。

二、HSL 和 RGB 颜色之间的转换

  1. HSL 转 RGB

首先,我们来看一下如何将 HSL 颜色格式转换为 RGB 颜色格式。下面是一个 SASS 函数,用于实现 HSL 颜色格式到 RGB 颜色格式的转换:

-- -------------------- ---- -------
--------- ---------------- ------------ ----------- -
  ------------ ----------- - ----
  ----------- ---------- - ----
  --- -- - ----- - ---------- - --- - ------------
  --- -- - -- - --------- - --- - - - ----
  --- ---------- - -- - --
  ----- --
  ------- --
  ------ --

  --- ---- -- - --- ---- - -- -
    ----- ---
    ------- ---
  - ----- -- ---- -- -- --- ---- - --- -
    ----- ---
    ------- ---
  - ----- -- ---- -- --- --- ---- - --- -
    ------- ---
    ------ ---
  - ----- -- ---- -- --- --- ---- - --- -
    ------- ---
    ------ ---
  - ----- -- ---- -- --- --- ---- - --- -
    ----- ---
    ------ ---
  - ----- -- ---- -- --- --- ---- -- --- -
    ----- ---
    ------ ---
  -

  ----- ----------- - --- - -----
  ------- ------------- - --- - -----
  ------ ------------ - --- - -----

  ------- --------- ------- -------
-

该函数需要传入三个参数,分别是色相、饱和度和亮度。在函数内部,我们首先将饱和度和亮度转换为 0-1 的小数。然后,我们根据 HSL 颜色格式的公式,计算出红、绿、蓝三个参数的值。最后,将红、绿、蓝三个参数的值转换为 0-255 的整数,并使用 SASS 的 rgb 函数返回 RGB 颜色格式。

下面是使用该函数将 HSL 颜色 225, 40%, 60% 转换为 RGB 颜色的示例代码:

  1. RGB 转 HSL

接下来,我们来看一下如何将 RGB 颜色格式转换为 HSL 颜色格式。下面是一个 SASS 函数,用于实现 RGB 颜色格式到 HSL 颜色格式的转换:

-- -------------------- ---- -------
--------- ---------------- ------- ------ -
  ----- ---- - ----
  ------- ------ - ----
  ------ ----- - ----

  ----- --------- ------- -------
  ----- --------- ------- -------
  ------- ---- - -----

  ----- --
  ------------ --
  ----------- ----- - ----- - --

  --- ------ -- - -
    --- ---- -- ---- -
      ----- --------- - ------ - ------- - -- - ---
    - ----- -- ---- -- ------ -
      ----- ------- - ----- - ------ - -- - ---
    - ----- -- ---- -- ----- -
      ----- ------ - ------- - ------ - -- - ---
    -

    --- ---------- - --- -
      ------------ ------ - ----- - ------
    - ----- -
      ------------ ------ - -- - ---- - ------
    -
  -

  ------- --------- ----------- - ----- ---------- - ------
-

该函数需要传入三个参数,分别是红色、绿色和蓝色。在函数内部,我们首先将红、绿、蓝三个参数转换为 0-1 的小数。然后,我们根据 RGB 颜色格式的公式,计算出 HSL 颜色格式的三个参数的值。最后,使用 SASS 的 hsl 函数返回 HSL 颜色格式。

下面是使用该函数将 RGB 颜色 102, 204, 255 转换为 HSL 颜色的示例代码:

三、总结

本文介绍了如何在 SASS 中进行 HSL 和 RGB 颜色之间的转换,并提供了相应的代码示例。希望读者能够通过本文的介绍,更好地理解 HSL 和 RGB 颜色格式,并掌握如何在 SASS 中进行颜色格式之间的转换。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64c4cf7083d39b4881838dd2

纠错
反馈