在SASS mixin中修改@content

时间:2016-03-31 13:38:50

标签: css sass mixins

我有一系列不同颜色的模块,每个模块都有自己的免费颜色。我有一张包含所有这些颜色的地图:

$colors : (
    blue : (
        main : #0079c1,
        dark : #00456f
    ),
    red : (
        main : #e52643,
        dark : #a01f31
    ),
    ...
)

我想要做的是将样式传递给mixin,然后为每种颜色重复这些样式 - 为了做到这一点,我需要能够修改@content,我无法看到一种方式这样做。

我的current best solution有效,但每次我想要使用它时都要求我重复@each块。我宁愿这部分

@each $color, $variants in $colors {
    $main: map-get($variants, main);
    $dark: map-get($variants, dark);
    ...
}

在我的mixin中,(like this, not working)但如果我这样做,那么我的$ main和$ dark变量都没有被定义,并且会抛出错误。

这样的事情可能吗?有没有办法在mixin内部而不是之前扩展内容中的变量?

0 个答案:

没有答案