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;
}
相关推荐
烟花落o几秒前
算法的时间复杂度和空间复杂度
开发语言·数据结构·笔记·算法
cc.ChenLy7 分钟前
【CSS进阶】毛玻璃效果与代码解析
前端·javascript·css
西门吹-禅8 分钟前
node js 性能处理
开发语言·javascript·ecmascript
我不是8神9 分钟前
go-zero微服务框架总结
开发语言·微服务·golang
一只大侠的侠19 分钟前
React Native for OpenHarmony:日期范围选择器实现
javascript·react native·react.js
Ronaldinho Gaúch29 分钟前
算法题中的日期问题
开发语言·c++·算法
麦德泽特1 小时前
机器人赛事系统架构:基于UDT和MQTT的低延迟、高可靠通信
c语言·开发语言·安全·系统架构·机器人
lsx2024061 小时前
TypeScript 循环
开发语言
utmhikari1 小时前
【架构艺术】治理后端稳定性的一些实战经验
java·开发语言·后端·架构·系统架构·稳定性·后端开发
csbysj20201 小时前
Swift 条件语句
开发语言