【问题标题】:SCSS @each nesting coloursSCSS @each 嵌套颜色
【发布时间】:2020-06-29 23:20:56
【问题描述】:

我有一系列选择器用于为一周中的日子着色

我愿意;

$saturday : blue;
$sunday : green;
...
$friday : red;

$days : saturday, sunday, ... friday;
@each $day in $days {
  .day-{$day}  {
    background: rgba(${$day}, 0.15);
    & .weekday {
      background: ${$day};
    }
  }
}

但它不起作用(无法编译)。

这种嵌套在 SCSS 中是不可能的吗?还是我的语法错误?

【问题讨论】:

  • 你能显示完整的代码(带颜色)吗?您提供的代码中有多个错误,但有些可能是由于缺少部分...
  • @Arkellys 会的。我确实认为编写 20 行代码可能更容易,而不是坚持这样做,但在 SSCC 中嵌套变量的概念存在智力上的兴趣

标签: sass scss-mixins


【解决方案1】:

您的代码的某些部分有点不清楚,所以我假设您正在尝试做的事情应该更像以下内容:

$days : (
  saturday: blue,
  sunday: green,
  ...
  friday: red
);

@each $day, $color in $days {
  .day-#{$day}  {
    background: rgba($color, 0.15);
    & .weekday {
      background: $color;
    }
  }
}

您的代码中一个值得注意的错误是您的 interpolations 的语法错误,应该写成 #{$variable} 而不是 ${$variable}{variable}。此外,您不需要插入所有内容,您可以查看文档以更好地理解这一点。

然后,由于您需要将日期与颜色相关联,您应该使用map 而不是list。使用@each 循环,您可以访问每个值,以便您可以在代码中需要的地方使用它们。

【讨论】:

  • 谢谢。我显然(彻底)对语法感到困惑,插值的概念对我来说是新的,所以这为处理文档提供了一些新线索。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-25
  • 2016-02-22
  • 2012-08-15
  • 2017-10-30
  • 2013-03-15
  • 1970-01-01
相关资源
最近更新 更多