首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Sass会根据body类改变变量的值吗?

Sass会根据body类改变变量的值吗?
EN

Stack Overflow用户
提问于 2018-12-12 19:49:49
回答 1查看 77关注 0票数 0

我正在尝试创建一个sass mixin,它允许根据添加的类重新定义变量的值。我被困在这个阶段(这不起作用),我想知道是否最终可以这样做:

代码语言:javascript
复制
$color-1: #9E619B;
$color-2: #BB496A;
$themecolor: red !default;
$color-themes: (
   theme1-pages:
       (
           themecolor: $color-1
       )
   theme2-pages:
       (
           themecolor: $color-2
       )
);

@each $name, $theme in $color-themes {
   body.#{$name} {
       $themecolor: map-get ($name, themecolor);
   }
}
EN

回答 1

Stack Overflow用户

发布于 2018-12-12 21:01:53

我认为您有一个语法错误(map-get后面有额外的空格)和map-get()参数中的错误:参数应该分别是$themethemecolor,而不是$namethemecolor

代码语言:javascript
复制
@each $name, $theme in $color-themes {
   body.#{$name} {
       $themecolor: map-get($theme, themecolor);
   }
}

这是因为$name仅仅是键,而$theme是对值的引用。如果您将代码的修复版本粘贴到SassMeister

代码语言:javascript
复制
$color-1: #9E619B;
$color-2: #BB496A;
$themecolor: red !default;
$color-themes: (
   theme1-pages:
       (
           themecolor: $color-1
       ),
   theme2-pages:
       (
           themecolor: $color-2
       )
);

@each $name, $theme in $color-themes {
   body.#{$name} {
      $themecolor: map-get($theme, themecolor);
      color: $themecolor;
   }
}

您应该可以没有任何错误地得到这个代码:

代码语言:javascript
复制
body.theme1-pages {
  color: #9E619B;
}

body.theme2-pages {
  color: #BB496A;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53742402

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档