我正在考虑用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;
}