从SASSSCSS中的变量值获取变量名。

问题描述 投票:3回答:2

我想在一个 @each 循环,使用定义的值,如下面的例子。

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

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

变量将是一种 "符号",定义是否打印或不打印Css规则。

我最大的疑问是如何检查动态定义的变量名称?

我试过用 $#{$prefix} 但它不工作。

EDIT -----------------------------------------------------我想获得这个CSS

car-something: 34px;

"车 "字从何而来 $prefix 并在第一轮 @each$#{$prefix} 成为 $car

问题出在 $#{$prefix} ......它不工作:P我得到一个错误。

css sass
2个回答
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
投票

不要试图插值一个变量名,而是传递一个列表给 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
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.