通过CSSOM可动态操作样式表,如增删改规则;利用document.styleSheets获取样式表集合,遍历cssRules读取规则,用insertRule和deleteRule插入删除规则,动态创建style标签可避免影响现有样式,适用于主题切换与样式管理。

JavaScript 的 CSSOM(CSS Object Model)提供了直接操作样式表的能力,不只是修改单个元素的 style 属性,还能动态增删改整个 CSS 规则。这在实现主题切换、运行时样式注入或组件化样式管理时非常有用。
const sheets = document.styleSheets;
const sheet = document.styleSheets[0];
for (let rule of sheet.cssRules) {<br> console.log(rule.selectorText, rule.style.cssText);<br>}
for (let rule of sheet.cssRules) {<br> if (rule.selectorText === '.highlight') {<br> rule.style.backgroundColor = 'yellow';<br> }<br>}sheet.insertRule('p { color: blue; }', 0);
立即学习“Java免费学习笔记(深入)”;
第二个参数是插入位置索引,0 表示最前面。 实际应用中常用于动态创建类:sheet.insertRule('.fade { opacity: 0.5; transition: opacity 0.3s; }', sheet.cssRules.length);
sheet.deleteRule(1); // 删除第二条规则
[...sheet.cssRules].forEach((rule, index) => {<br> if (rule.selectorText === '.obsolete') {<br> sheet.deleteRule(index);<br> }<br>});
const style = document.createElement('style');<br>document.head.appendChild(style);<br>const sheet = style.sheet;<br>sheet.insertRule('body { margin: 0; }', 0);基本上就这些。掌握 CSSOM 操作后,你可以更灵活地管理样式逻辑,尤其适合封装成工具函数或 UI 主题系统。关键是理解 cssRules 的只读性(需用方法修改)和同源限制。不复杂但容易忽略细节。
以上就是如何利用 JavaScript 的 CSSOM 动态操作样式表规则?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号