防止颜色转换为 RGB?

Keep colors from being converted to RGB?

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

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

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

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

对于 SVG 元素,您可以为 "fill" 颜色使用属性而不是样式,它会保持 HSL 格式。

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