首页 > web前端 > js教程 > 正文

如何利用 JavaScript 的 CSSOM 动态操作样式表规则?

幻影之瞳
发布: 2025-10-04 10:20:01
原创
481人浏览过
通过CSSOM可动态操作样式表,如增删改规则;利用document.styleSheets获取样式表集合,遍历cssRules读取规则,用insertRule和deleteRule插入删除规则,动态创建style标签可避免影响现有样式,适用于主题切换与样式管理。

如何利用 javascript 的 cssom 动态操作样式表规则?

JavaScript 的 CSSOM(CSS Object Model)提供了直接操作样式表的能力,不只是修改单个元素的 style 属性,还能动态增删改整个 CSS 规则。这在实现主题切换、运行时样式注入或组件化样式管理时非常有用。

访问样式表

通过 document.styleSheets 可以获取页面中所有样式表的集合,包括 link 引入的和 style 标签内联的:

const sheets = document.styleSheets;

每个 sheet 对象代表一个 CSSStyleSheet 实例,可通过索引访问:

const sheet = document.styleSheets[0];

注意:跨域的外部样式表受同源策略限制,无法操作其 rules。

读取与修改 CSS 规则

CSSStyleSheet 的 cssRules 属性返回一个包含所有 CSSRule 的类数组对象。可以遍历规则进行查找或修改:

for (let rule of sheet.cssRules) {<br>  console.log(rule.selectorText, rule.style.cssText);<br>}
登录后复制

例如,想修改 .highlight 的背景色:

for (let rule of sheet.cssRules) {<br>  if (rule.selectorText === '.highlight') {<br>    rule.style.backgroundColor = 'yellow';<br>  }<br>}
登录后复制

插入新样式规则

使用 insertRule() 方法可在指定位置插入一条新规则:

sheet.insertRule('p { color: blue; }', 0);

立即学习Java免费学习笔记(深入)”;

酷表ChatExcel
酷表ChatExcel

北大团队开发的通过聊天来操作Excel表格的AI工具

酷表ChatExcel 48
查看详情 酷表ChatExcel
第二个参数是插入位置索引,0 表示最前面。 实际应用中常用于动态创建类:

sheet.insertRule('.fade { opacity: 0.5; transition: opacity 0.3s; }', sheet.cssRules.length);

删除样式规则

通过 deleteRule(index) 删除指定位置的规则:

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中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号