假设我需要应用一堆 CSS 规则(大约 50 个),如下代码:
var s = document.createElement('style');
s.type = 'text/css';
s = document.getElementsByTagName('head').item(0).appendChild(s);
var cssRules = [
".someClass1 {text-align: center; color: red;}",
".someClass2 {border: 1px solid black;}",
".someClass3 {color: green;}",
".someClass4 {text-decoration: underline; color: red;}",
...
];
if (s.sheet && s.sheet.insertRule) {
for (var i = 0, len = cssRules.length; i<len; i++) {
s.sheet.insertRule(cssRules[i], s.sheet.cssRules.length);
}
}
所以每次调用都会s.sheet.insertRule
触发浏览器重排。如何将浏览器重排减至一次?
谢谢。