只运行一次LESS mixin

时间:2015-04-29 07:08:20

标签: less css-preprocessor

  

我正在尝试确保可以在不同文件中多次调用的mixin,只输出一次css。

首先尝试(减去)

我首先想的是这样的事情:

MIXIN

@_mod: "false";
.mod(@_mod) when (@_mod = "false") {
    @_mod: "true";

    .mod {
        border-radius: 6px;
        border: 1px solid gray;
    }
}

致电1

.mod(@_mod);

致电2

.mod(@_mod);

输出

.mod {
  border-radius: 6px;
  border: 1px solid gray;
}
.mod {
  border-radius: 6px;
  border: 1px solid gray;
}

这不起作用,因为变量是命名空间并且作用于mixins。 Reade more

CodePen

第二次尝试(减去)

然后我就是这样:

MIXIN

@_mod: "false";
.mody() {
    .mody {
        border-radius: 6px;
        border: 1px solid gray;
    }
}

致电1

& when (@_mod = "false") {
    .mody();
}
@_mod: "true";

致电2

& when (@_mod = "false") {
    .mody();
}
@_mod: "true";

输出

-nothing-

这不起作用,因为所有变量的Less'延迟加载“功能”......

CodePen

问题

有没有人知道如何确保多次调用mixin只运行一次?

0 个答案:

没有答案