javascript获取样式表的规则及读取与写入

CSSStyleSheet是继承了StyleSheet的接口属性,它是用于找当前文档中的<link rel="" href=""...>这样文件的,有以下属性:lenght,cssRules,title,href,type,deleteRule,insertRule等

CSSStyleRule是继承于CSSRule,它是用于找<link rel="" href="'>中所有每个规则的集合,它有以下属性:

cssText,selectorText,type,style,等。

第1种方法

javascript 复制代码
 function getStyle(element)
           {
           //这里是兼容IE的styleSheet属性,sheet是dom中CSSStyleSheet对象的属性
              return element.sheet||element.styleSheet;
           }
           //获取到文档中的第1个link
           var link=document.getElementsByTagName("link")[0];
           var sheet=getStyle(link);
           //获取link文件的规则合集对象cssRules,以及兼容IE的rules
           var rules=sheet.cssRules||sheet.rules;
           //获取.css文件中第一条规则,以花括号为准的第1个{}
           var rule=rules[0];
           //这里是写入cssText,而直接rule.cssText是直接读取整个样式表,但不能写入,要写入必须rule.style.cssText="你写入的规则"
           rule.style.cssText="margin:5px;padding:5px;";
           //这里是显示你读取第1条规则的选择符文本如:.db 或#main或标签选择符div等
           console.log(rule.selectorText);
           console.log(rule.style.cssText);

第2种方法

javascript 复制代码
           //获取到文档中的第1个link,这里直接用document.styleSheets[0]来找文档中的<link>文件,找到后直接获取文件中的规则集合
           var sheet=document.styleSheets[0];
           //获取link文件的规则合集对象cssRules,以及兼容IE的rules
           var rules=sheet.cssRules||sheet.rules;
           //获取.css文件中第一条规则,以花括号为准的第1个{}
           var rule=rules[0];
           //这里是写入cssText,而直接rule.cssText是直接读取整个样式表,但不能写入,要写入必须rule.style.cssText="你写入的规则"
           rule.style.cssText="margin:5px;padding:5px;";
           //这里是显示你读取第1条规则的选择符文本如:.db 或#main或标签选择符div等
           console.log(rule.selectorText);
           console.log(rule.style.cssText);

然后是你在文件中的导入的外部规则,也包括你在当前文档中嵌入的规则,嵌入的规则没有 的href,rel,href=undefine属于未定义状态

这是外部导入css文件

css 复制代码
body,html
{
    margin: 0;
    padding: 0;
}
body{
    font-family: Arial, Helvetica, sans-serif;
    font-size: 1em;
}

#mydiv
{
    margin: 0 auto;
    width: 800px;
    margin-top: 5px;
    border: solid 1px blue;
}
#mydiv #mylist
{
    margin: 0;
    padding: 0;
}
#mydiv #mylist li
{
    list-style: none;
    margin: 5px;
    font-size: 0.85em;
    float:left;
}
相关推荐
一夜枫林1 小时前
vue实现scroll-view上下滑动右侧左右滑动
前端·javascript·vue.js
CodeStats1 小时前
【Java类加载器】Java 类加载器完整体系深度拆解(下):自定义加载器实战与 SPI 破坏双亲委派(MySQL 驱动揭秘)
java·开发语言·jvm·classloader·双亲委派
志尊宝1 小时前
Vue3 零基础每日笔记(011):生命周期钩子——在正确的时间做正确的事
javascript·vue.js·笔记
砚底藏山河1 小时前
并发与限频工程:把20只的2秒压到0.5秒不封号(魔码量化实战 #03)
java·开发语言·数据库·python·金融
YWL2 小时前
OpenLayers地图分享:URL参数同步+分享链接生成,让用户一键分享地图视角
前端·javascript·vue·openlayers
云雀衔光2 小时前
MCP 协议全景:为什么它是 AI 连接工具的「USB-C」
java·开发语言·数据库·人工智能·ai编程
geovindu2 小时前
go: Task Scheduler
开发语言·后端·golang
梦醒沉醉2 小时前
5、表达式与运算符
javascript
会飞的拖把2 小时前
Python 多任务编程:并发、进程、线程与线程安全详解
开发语言·python
君顾12 小时前
折扣卡 CPS 小程序定制:从业务流程到系统架构的实践指南
java·开发语言·折扣卡