Css 为什么光($color,50%)解析为白色?

Css 为什么光($color,50%)解析为白色?,css,sass,Css,Sass,此sass代码段: $red: #f00 $lightred: lighten($red, 50%) body background: $lightred 解析为: body { background: white; } 如果您将50%改为45%,那么它似乎可以按预期工作: $lightred2: lighten($red, 45%) ... background-color: #ffe5e5 为什么会变成白色而不是预期的50%的红色? 你可以在这里看到它的作用 (注意-sav

此sass代码段:

$red: #f00

$lightred: lighten($red, 50%)

body
  background: $lightred
解析为:

body {
  background: white; }
如果您将50%改为45%,那么它似乎可以按预期工作:

$lightred2: lighten($red, 45%)
...
background-color: #ffe5e5
为什么会变成白色而不是预期的50%的红色?

你可以在这里看到它的作用

(注意-save函数似乎有一个bug,在css区域,再次选择Sass旧语法,然后重新运行)

更新-

最终,我想要的是将白色与原色混合,以获得着色效果:

mix($color,white, 10%)

因为在HSL颜色中描述了变亮功能,而您的红色#f90被翻译为HSL(0,100%,50%)


因此,浅色($lightred,50%)等于hsl(0,0,100%)或白色

这很有意义。你知道如何正确地获得给定颜色的较浅版本吗?也许只是降低百分比?