【问题标题】:Sass - List mapsSass - 列出地图
【发布时间】:2015-01-13 18:44:58
【问题描述】:

我需要你的帮助...我正在学习使用 sass 列表映射...我有一个包含键值对的列表映射,用于列出十六进制颜色代码。我想将这些十六进制代码用于另一个列表映射,其中我有不同的 lighten() 和 darken() 函数来计算阴影。 基本上,如果在第一个列表图中我有

$flat-colors: (
  lizard : ‪#‎16a085‬
);

在第二个列表地图中我有

$palettes: (
  meadow: (
    xtra-light : lighten(lizard, 60%),
    light : lighten(lizard, 40%),
    mid-light : lighten(lizard, 20%),
    base : lizard,
    mid-dark : darken(lizard, 20%),
    dark : darken(lizard, 40%),
    xtra-dark : darken(lizard, 60%),
  )
);

我有一个函数可以返回默认为“base”的阴影...

@function palette($palette, $tone: 'base') {
  @return map-get(map-get($palettes, $palette), $tone);
}

这会引发这个错误: $color: "lizard" 不是 `lighten' 的颜色 我做错了什么?

【问题讨论】:

  • 试试...xtra-light : lighten(map-get(lizard, $flat-colors), 60%),这样你就可以在创建调色板时拉出颜色。那时,它对蜥蜴没有任何价值。
  • 向后 ... map-get($flat-colors, lizard)

标签: list dictionary sass maps


【解决方案1】:

正是它所说的:(字符串)蜥蜴不是一种颜色。要在映射中引用颜色,您需要使用 map-get:

$palettes: (
  meadow: (
    xtra-light : lighten(map-get($flat-colors, lizard), 60%)
    // etc
  )
);

【讨论】:

  • @rfornal 如果您想回答这个问题,您应该发布一个答案,而不是在 cmets 上浪费时间。另外,如果我浪费时间复制您的“答案”,那就错了。
  • 尽管我之前发表了评论,但这是一个很好的答案。然而,我把代码放到了一个codepen中,实际上无法让它工作。你测试过这个吗?也许这是我在 codepen 中的设置,但我想我会传递它。
  • 经过测试。很明显,工作正常。
猜你喜欢
  • 2023-03-10
  • 2020-01-11
  • 1970-01-01
  • 2016-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-09
  • 2017-04-11
相关资源
最近更新 更多