从SASS / SCSS中的变量值获取变量名称

时间:2012-02-14 15:40:38

标签: css sass

我想使用定义的值在@each循环中访问变量,如下例所示:

$car:true;
$people:false;
$job:false;

    @mixin options($someval){
        @each $prefix in car,people,job{ 
            @if $#{$prefix} == true{
                    //some CSS...
            }       
        }
    }

变量将是一种“信号量”,它定义是否打印Css规则。

我很怀疑的是如何查看动态定义的变量名称?

我尝试使用$#{$prefix},但它不起作用。

编辑--------------------------- 我想获得这个CSS

car-something: 34px;

“car”一词取自$prefix并且在第@each循环$#{$prefix}的第一轮中变为$car

问题出在$#{$prefix} ...它不起作用:P我收到错误

2 个答案:

答案 0 :(得分:1)

这是一个古老的问题,但由于没有有效答案,因此这里是

您需要将地图传递到@each

$car:true;
$people:false;
$job:false;

@mixin options($someval){
    @each $key, $val in (car: $car, people: $people, job: $job) { 
        @if $val == true{
            #{$key}-something: $someval
        }       
    }
}

test {
    @include options(34px)
}

答案 1 :(得分:0)

不是尝试插入变量名,而是将列表传递给mixin。

$car: true;
$people: false;
$job: false;

$thing-list: $car, $people, $job;

@mixin thingamajig($thing-list) {
  @each $thing in $thing-list {
    @if $thing {
      // Some CSS
    }
  }
}