【问题标题】:Carry variable through a SCSS loop [duplicate]通过SCSS循环携带变量[重复]
【发布时间】:2015-02-25 17:22:07
【问题描述】:

我有以下 scss:

//############  colour vars
$pageA:#C70F3F;
$pageB:#7f153b;
$pageC:#0c5451;
$pageD:#9f1023;

//############ page type array
$pageTypes: pageA pageB pageC pageD;

//############  loop
@each $pageType in $pageTypes {
  $thisColor:str-insert(#{$pageType}, "$", 1);
  .#{$pageType} {
    background-color:$thisColor;
    background-image:url(../images/background/#{$pageType}.jpg);
  }
}

想要的结果是:

.pageA {
  background-color: #C70F3F;
  background-image: url(../images/background/pageA.jpg);
}

但我实际得到的是:

.pageA {
  background-color: $pageA;
  background-image: url(../images/background/pageA.jpg);
}

有没有办法将变量带入背景色?

【问题讨论】:

  • 另一个没有评论的反对票...为什么?
  • Sass 文档只有一页。如果您愿意阅读它,您就会得到答案。

标签: css sass


【解决方案1】:

添加颜色数组:

$pageA : #C70F3F;
$pageB : #7f153b;
$pageC : #0c5451;
$pageD : #9f1023;

//############ page type array + colors in array

$pageTypes: pageA pageB pageC pageD;
$colors : $pageA, $pageB, $pageC, $pageD;


//############  loop
$i:0;
@each $pageType in $pageTypes {
  $i:$i+1;
  $thisColor:nth($colors,$i);
  .#{$pageType} {
    background-color:$thisColor;
    background-image:url(../images/background/#{$pageType}.jpg);
  }
}

【讨论】:

  • 谢谢,这并不理想,因为它依赖于相同顺序的数组,但它可以工作!
猜你喜欢
  • 2012-05-21
  • 2015-10-26
  • 1970-01-01
  • 2022-01-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多