$(document)[0].styleSheets[styleSheetIndex].insertRule(rule, lineIndex);
styleSheetIndex
是与您加载文件的顺序相对应的索引值<head>
(例如,0 是第一个文件,1 是下一个文件,等等。如果只有一个 CSS 文件,则使用 0)。
rule
是文本字符串 CSS 规则。像这样:"body { display:none; }"
。
lineIndex
是该文件中的行号。要获取最后一个行号,请使用$(document)[0].styleSheets[styleSheetIndex].cssRules.length
. 只是console.log
那个 styleSheet 对象,它有一些有趣的属性/方法。
因为 CSS 是“级联”,所以无论您尝试为该选择器插入什么规则,您都可以附加到 CSS 文件的底部,它会覆盖任何在页面加载时设置的样式。
在某些浏览器中,在处理完 CSS 文件后,您必须通过调用 DOM JS 中的一些无意义的方法来强制 CSS“重绘” document.offsetHeight
(它被抽象为 DOM 属性,而不是方法,所以不要使用“()”) -- 只需在您的 CSSOM 操作后强制页面在旧浏览器中重绘即可。
所以这里有一个例子:
var stylesheet = $(document)[0].styleSheets[0];
stylesheet.insertRule('body { display:none; }', stylesheet.cssRules.length);