Css 可扩展的全局变量分配@mixin for Sass

Css 可扩展的全局变量分配@mixin for Sass,css,sass,namespaces,Css,Sass,Namespaces,我以为我已经解决了这个问题,但是代码并没有按照我想要的方式编译 这是我目前的代码: $prefix: 'foo'; @mixin var-assign($var, $val) { $var: $val !global; }; // will output .foo-selector .#{$prefix}-selector { /* ... */ } @include var-assign($prefix, 'bar'); // should output .bar-select

我以为我已经解决了这个问题,但是代码并没有按照我想要的方式编译

这是我目前的代码:

$prefix: 'foo';

@mixin var-assign($var, $val) {
  $var: $val !global;
};

// will output .foo-selector
.#{$prefix}-selector {
  /* ... */
}

@include var-assign($prefix, 'bar');

// should output .bar-selector
.#{$prefix}-selector {
  /* ... */
}

上面的代码打印
.foo选择器
两次。如果我没有打印一个
.foo selector
实例和一个
.bar selector

如果需要更改mixin变量,请尝试使用

@mixin var-assign($prefix, $val) {
  $prefix: $val !global;
};

工作示例:

只有当@mixin参数与初始全局变量共享同一名称时,这似乎才起作用。在全局范围或@mixin中更改
$prefix
,使原始声明名称不反映参数的名称,并使其中断。我需要一个可扩展的解决方案来改变变量值。