将变量从 mixin @each 循环传递到@content



是否可以将变量从mixin内运行的@each循环传递到@content中。

请参阅下面的示例,了解如何尝试在@content内容中使用$passthis变量。

// data formatted as an $key and $value array
$data: (
a: 'house',
b: 'electro',
c: 'techno'
);

// example mixing running a @each loop using passed array
@mixin example($array) {
// each converting $array into $key and $value for each loop 
@each $key, $value in $array {
// turn $value into $passthis var
$passthis: $value;
// content which contains $passthis variables 
@content
}
}

.music {
@include example($data) {
&-#{$passthis} {
display: none !important;
}
&-2-#{$passthis} {
display: inline !important;
}
}
}

当我尝试在示例中使用#{$passthis}mixin出现此错误。

Undefined variable: "$passthis".

这样用@content是不可能的吗?

参见萨斯迈斯特现场演示。

您可以使用以下 sintax 在全局变量中转换$passthis

$passthis: $value !global;

我创建了一个sassmeister:https://www.sassmeister.com/gist/36286bdae2bcc6f8b278254b8ec5b205

最新更新