有没有办法使用Postcss API将选择器添加到现有规则?
像myRule.addSelector(".newSelector")
?
目前我必须这样做:
myRule.selector = myRule.selector ? myRule.selector + ", .newSelector" : ".newSelector";
答案 0 :(得分:0)
您可以使用rule.selectors
,这是一个getter
的属性,它返回一个选择器数组(从rule.selector
字符串生成),以及一个setter
选择器数组(并覆盖rule.selector
字符串)。
var sels = myRule.selectors; //save the getter returned array so we can modify it with push.
sels.push('.newSelector'); //push returns the new length not the array, that's why we had to save the array in sels.
myRule.selectors = sels; //the setter will join the array elements and overwrite myRule.selector
使用concat
的更短版本(因为concat
会返回一个新数组)。
myRule.selectors = myRule.selectors.concat('.newSelector');
请参阅PostCSS来源here。