我无法弄清楚为什么map-get没有返回预期结果:
$buttonColors: (blue: lighten(blue, 25%), grey: lighten(gray, 40%));
@debug map-get($buttonColors, 'blue');
出于某种原因,当我希望它返回null
时,会返回#8080ff
。这会导致我的代码中出现问题,因为我无法将空值传递给像变亮或变暗的函数。
答案 0 :(得分:1)
您的映射使用颜色作为其键,而您告诉Sass查找具有其键的字符串的元素。颜色blue
与字符串'blue'
不同。结果,查找失败,map-get()
函数返回NULL
。 HTML / CSS规范中定义的所有颜色关键字都具有颜色的类型,除非您引用它们(或通过插值将它们转换为字符串)。
你可以停止将第二个参数转换为map-get到一个字符串中,但如果你只是切换到总是使用字符串作为映射的键(使用其他任何东西只会导致混淆和/或错误)会更好
$buttonColors: ('blue': lighten(blue, 25%), 'grey': lighten(gray, 40%));