为什么Sass找不到我的颜色查找映射的元素?

时间:2015-07-02 12:45:08

标签: sass

我无法弄清楚为什么map-get没有返回预期结果:

$buttonColors: (blue: lighten(blue, 25%), grey: lighten(gray, 40%));

@debug map-get($buttonColors, 'blue');

出于某种原因,当我希望它返回null时,会返回#8080ff。这会导致我的代码中出现问题,因为我无法将空值传递给像变亮或变暗的函数。

1 个答案:

答案 0 :(得分:1)

您的映射使用颜色作为其键,而您告诉Sass查找具有其键的字符串的元素。颜色blue与字符串'blue'不同。结果,查找失败,map-get()函数返回NULL。 HTML / CSS规范中定义的所有颜色关键字都具有颜色的类型,除非您引用它们(或通过插值将它们转换为字符串)。

你可以停止将第二个参数转换为map-get到一个字符串中,但如果你只是切换到总是使用字符串作为映射的键(使用其他任何东西只会导致混淆和/或错误)会更好

$buttonColors: ('blue': lighten(blue, 25%), 'grey': lighten(gray, 40%));