Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css HSL到Sass的十六进制错误';调色_Css_Colors_Sass - Fatal编程技术网

Css HSL到Sass的十六进制错误';调色

Css HSL到Sass的十六进制错误';调色,css,colors,sass,Css,Colors,Sass,一个月来我一直在想这个问题,但什么都没用。我有3种颜色,我需要计算HSL中不同颜色之间的差异。我用adjust color做了并应用了这些差异,这样我以后可以添加另一种颜色作为基础 但是HSL到HEX的转换并不是到处都正确。在主暗箱中,它返回我想要的颜色(即#154360)。但在主光源的情况下,它没有(我试图得到的颜色是#5499C7,我实际得到的颜色是#5298c7)。这是没有意义的,因为我正确计算了一切,不应该有问题 以下是我写的: $primary: hsl(204, 64%, 44%);

一个月来我一直在想这个问题,但什么都没用。我有3种颜色,我需要计算HSL中不同颜色之间的差异。我用adjust color做了并应用了这些差异,这样我以后可以添加另一种颜色作为基础

但是HSL到HEX的转换并不是到处都正确。在主暗箱中,它返回我想要的颜色(即#154360)。但在主光源的情况下,它没有(我试图得到的颜色是#5499C7,我实际得到的颜色是#5298c7)。这是没有意义的,因为我正确计算了一切,不应该有问题

以下是我写的:

$primary: hsl(204, 64%, 44%);
$primary-dark: adjust-color($primary, $lightness: -21%, $hue: -1deg);
$primary-light: adjust-color($primary, $saturation: -13%, $lightness: 11%);
这是我的答案

这是怎么回事?我一直在阅读我能找到的所有东西,疯狂地经历着,问了很多关于它的问题,但什么都没有!
救命啊

我认为这仅仅是一个以不同于您预期的方式对数字进行舍入的问题

当然,RGB和HEX基本上是相同的三对数字,它们之间的转换是无缝的,但是HSL转换比这更复杂。我不想学数学,但如果有人想读书的话

请注意,在element inspector控制台(Chrome)中,您可以单击“颜色值”旁边的彩色正方形,并在HSL、RGBA和十六进制之间进行更改。如果您将“正确”十六进制更改为HSL并返回到十六进制,您将获得“错误”十六进制。这可能是计算本身的四舍五入方式,而不是SASS本身的问题

为了解决这个问题,我可能建议使用本机HSL值,而不是将它们转换为十六进制,除非代码中需要这样做。看起来不错