【问题标题】:How do I reference another value in the current SASS map/dictionary?如何引用当前 SASS 映射/字典中的另一个值?
【发布时间】:2019-11-16 08:20:19
【问题描述】:

我有一个颜色的 SASS 地图,我希望某些颜色仅引用地图中的另一种颜色。

例如

$colors: (
     special-red: #a82523,
     red: special-red
)

但是,当我运行它时,map-get($colors, red) 的值实际上是 special-red。我希望值为#a82523

你是怎么做到的?

【问题讨论】:

    标签: dictionary sass scss-mixins


    【解决方案1】:

    当您的地图未进行事件初始化时,无法添加键。您可以将值分配给变量 $special-red: #a82523;然后在地图中分配它

    $special-red: #a82523;
    $colors: (
         special-red: $special-red,
         red: $special-red
    )
    

    但如果你真的想这样做,那么你可以创建一个 mixin 并通过它查找

    $colors: (
        special-red: #009CDC,
        red: special-red
    );
    
    @mixin themeColor1($color) {
      $mapColor: map-get($colors, $color);
      @if map-has($mapColor) {
        color: map-get($colors, $mapColor)
      } @else {
        color: map-get($colors, $color)
      }
    }
    
    .my-class {
      @include themeColor1(red);
    }
    
    .my-class2 {
      color: map-get($colors, special-red);
    }
    

    但我的建议是方法1,设置变量

    【讨论】:

      猜你喜欢
      • 2019-08-27
      • 2017-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-22
      • 1970-01-01
      相关资源
      最近更新 更多