如果scss中的其他主题没有某些变量,该如何使用默认变量?

它的

因此,我正在编写一个主题为浅色(默认)和深色的Web应用程序。根据本文如何在Sass中创建暗模式使用SCSS我可以创建明暗,也可以创建多个主题。但是我必须实现这样的目标。

这是场景:

在文章中提到的解决方法中,我有一个问题,如果我没有bg: $bg--light,深色版本,而只有默认版本,该怎么办像这样

$themes: (
        default: (
                logo: url("../images/brand/logo_vertical.svg"),
                bg: $bg--light,
                text: $text--light,
        ),
        dark: (
                logo: url("../images/brand/logo_vertical--invert.svg"),
                text: $text--dark,
        ),
);

@mixin themed() {
  @each $theme, $map in $themes {
    .theme--#{$theme} & {
      $theme-map: () !global;
      @each $key, $submap in $map {
        $value: map-get(map-get($themes, $theme), '#{$key}');
        $theme-map: map-merge($theme-map, ($key: $value)) !global;
      }
      @content;
      $theme-map: null !global;
    }
  }
}

@function t($key) {
  @return map-get($theme-map, $key);
}

.base {
  @include themed() {
    color: t($text);
    background: t($bg);
  }
}

这给出了bg: $bg--light,在黑暗中没有的错误如果bg: $bg--light,暗色或其他主题将不使用默认主题,那么我能做些什么呢?

这可能吗?怎么样?

if condition如果密钥不存在,有什么办法可以写使用默认值?

Arkellys

是的,您可以通过if条件获得想要的东西。首先,将默认主题存储在变量中:

$default-theme: map-get($themes, default);

然后,在您的函数中t,使用内置函数map-has-key检查该键是否存在,并使用结果通过三元运算符选择所需的主题图

@function t($key) {
  $key-exists: map-has-key($theme-map, $key);
  @return map-get(if($key-exists, $theme-map, $default-theme), $key);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在onCreat()中具有变量的值以在其他方法中使用

来自分类Dev

如何使用dplyr创建一个新变量,该变量是其他两个变量的并集?

来自分类Dev

没有其他“如果”的“其他”

来自分类Dev

如何使用其他功能变量?

来自分类Dev

AngularJS在没有指示的情况下更新其他文件中的变量

来自分类Dev

Bash(和其他语言)-为什么没有默认检查未声明的变量?

来自分类Dev

如何让变量依赖于类中的其他变量?

来自分类Dev

R中的mlogit包:具有其他特定变量且没有拦截

来自分类Dev

如何使用其他sass文件中的sass变量

来自分类Dev

如何使用事件监听器获取按钮的值并使该变量可用于JS中的其他功能?

来自分类Dev

如何在局部范围之外获取变量,并能够在另一个视图或Swift,Xcode中的其他函数中使用该变量?

来自分类Dev

如何访问其他类中的变量

来自分类Dev

如何在onCreat()中具有变量的值以在其他方法中使用

来自分类Dev

如何在Perl中设置类似Java的“静态变量”,其他类可以访问该静态变量?

来自分类Dev

弹簧值注入-如果没有env变量,则默认为文件中的系统属性

来自分类Dev

如果其他数据框中没有该值,则熊猫从数据框中排除行

来自分类Dev

R-使用带有for循环的其他变量在数据框中创建变量

来自分类Dev

有什么方法可以创建此处文档来替代bash中的某些变量,但不能替代其他变量?

来自分类Dev

快速使用其他文件中的变量

来自分类Dev

没有其他“如果”的“其他”

来自分类Dev

如何使用按钮使用其他定义中的其他变量?

来自分类Dev

如何使用其他类中的变量?

来自分类Dev

使用循环或其他功能将主题ID变量添加到R中的大数据框中?

来自分类Dev

如何在python类中的其他函数中定义(变量)的函数内使用变量?

来自分类Dev

如何使用R在单个图中绘制数据框中变量与所有其他变量的散点图?

来自分类Dev

没有模板变量的模板化类型和使用此类的其他模板化类型

来自分类Dev

有没有其他方法可以在 cshtml 中使用 Session 变量?

来自分类Dev

如何使用由其他变量构建的变量?

来自分类Dev

Django:如何使用其他 .py 文件中定义的变量?

Related 相关文章

  1. 1

    如何在onCreat()中具有变量的值以在其他方法中使用

  2. 2

    如何使用dplyr创建一个新变量,该变量是其他两个变量的并集?

  3. 3

    没有其他“如果”的“其他”

  4. 4

    如何使用其他功能变量?

  5. 5

    AngularJS在没有指示的情况下更新其他文件中的变量

  6. 6

    Bash(和其他语言)-为什么没有默认检查未声明的变量?

  7. 7

    如何让变量依赖于类中的其他变量?

  8. 8

    R中的mlogit包:具有其他特定变量且没有拦截

  9. 9

    如何使用其他sass文件中的sass变量

  10. 10

    如何使用事件监听器获取按钮的值并使该变量可用于JS中的其他功能?

  11. 11

    如何在局部范围之外获取变量,并能够在另一个视图或Swift,Xcode中的其他函数中使用该变量?

  12. 12

    如何访问其他类中的变量

  13. 13

    如何在onCreat()中具有变量的值以在其他方法中使用

  14. 14

    如何在Perl中设置类似Java的“静态变量”,其他类可以访问该静态变量?

  15. 15

    弹簧值注入-如果没有env变量,则默认为文件中的系统属性

  16. 16

    如果其他数据框中没有该值,则熊猫从数据框中排除行

  17. 17

    R-使用带有for循环的其他变量在数据框中创建变量

  18. 18

    有什么方法可以创建此处文档来替代bash中的某些变量,但不能替代其他变量?

  19. 19

    快速使用其他文件中的变量

  20. 20

    没有其他“如果”的“其他”

  21. 21

    如何使用按钮使用其他定义中的其他变量?

  22. 22

    如何使用其他类中的变量?

  23. 23

    使用循环或其他功能将主题ID变量添加到R中的大数据框中?

  24. 24

    如何在python类中的其他函数中定义(变量)的函数内使用变量?

  25. 25

    如何使用R在单个图中绘制数据框中变量与所有其他变量的散点图?

  26. 26

    没有模板变量的模板化类型和使用此类的其他模板化类型

  27. 27

    有没有其他方法可以在 cshtml 中使用 Session 变量?

  28. 28

    如何使用由其他变量构建的变量?

  29. 29

    Django:如何使用其他 .py 文件中定义的变量?

热门标签

归档