是否可以将变量从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