我想在一个 @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我得到一个错误。
这是个老问题了,但是因为没有有效的答案,所以在这里说一下。
你需要将一张地图传给 @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)
}
不要试图插值一个变量名,而是传递一个列表给 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
}
}
}