在可重用函数中使用sass选择器函数



我正在考虑用SASS解决一个特定的问题——我想把一个伪类附加到许多旧的遗留样式的选择器中,理想情况下我想用DRY的方式来做。

我看到sass允许您使用选择器附加函数来附加到选择器——然而,我似乎无法找到在sass中编写某种可重用函数的方法,该函数调用这样的函数来修改选择器。

以下是我尝试过的:

@function optOut($selector) {
@return selector-append($selector, ":not(:where(*.opt-out))");
}
optOut(div) {
color: black;
}

但是,根据我使用的sass编译器,它要么不编译,要么只编译为:

optOut(div) {
color: black;
}

我想把它编译成这样:

div:not(:where(*.opt-out)) {
color: black;
}

我们非常感谢您的帮助,非常感谢您花费的时间和知识。

您只需要插入函数的返回值,如下所示:

@function optOut($selector) {
@return selector-append($selector, ":not(:where(*.opt-out))");
}
#{optOut(div)} {
color: black;
}

最新更新