【问题标题】:Keep colors from being converted to RGB?防止颜色转换为 RGB?
【发布时间】:2016-12-06 22:36:44
【问题描述】:

使用 Javascript 分配 hsl 颜色时,它不会将其应用为 HSL 颜色,而是将其转换为 RGB。

document.body.style.backgroundColor = "hsl(0,100%,50%)"
document.body.style.backgroundColor; // "rgb(255, 0, 0)"

我希望分配一个 HSL 颜色,然后在事后修改饱和度和亮度,但我不能轻易做到,因为它会被转换为 RGB。

有没有办法阻止它转换为 RGB,或者是否需要手动将其转换回 HSL?

【问题讨论】:

  • 您需要 1) 将 HSL 值保存在变量中,或 2) 将 RGB 值转换为 HSL:see this
  • 您希望保留 HSL 颜色的目的是什么?屏幕只能显示 RGB,因此在视觉上没有区别,除非您尝试创建需要 CMYK 颜色的可打印文档 - 我只在 CSS4 草案中看到过。
  • @TheThirdMan 我希望保留 HSL 格式,以便在动态网页之后轻松更改饱和度和亮度/亮度。
  • 我明白了...尽管在 CSS 中,HSL 颜色代码实际上应该是 hsl(0,100%,50%) 的单个值,因此事后没有简单的方法可以访问它。也许你应该改用变量?您还可以为要应用背景颜色的元素设置属性,并在更改这些属性时重新应用 CSS。

标签: javascript css colors rgb hsl


【解决方案1】:

对于 SVG 元素,您可以为“填充”颜色使用属性而不是样式,并且它将保持 HSL 格式。

对于一般元素,将 HSL 值存储为变量或属性以在修改/重新应用颜色时从中提取可能是最简单的解决方案。

【讨论】:

    猜你喜欢
    • 2019-02-08
    • 2018-06-16
    • 2011-05-05
    • 2013-12-10
    • 2011-01-26
    • 2011-01-04
    • 2019-07-06
    • 1970-01-01
    • 2017-06-29
    相关资源
    最近更新 更多