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;
}
相关推荐
惜.己几秒前
使用python的读取xml文件,简单的处理成元组数组
xml·开发语言·python·测试工具
sunbyte2 分钟前
50天50个小项目 (Vue3 + Tailwindcss V4) ✨ | GoodCheapFast(Good - Cheap - Fast三选二开关)
前端·javascript·css·vue.js·tailwindcss
apihz24 分钟前
域名WHOIS信息查询免费API使用指南
android·开发语言·数据库·网络协议·tcp/ip
coding随想37 分钟前
掌控网页的魔法之书:JavaScript DOM的奇幻之旅
开发语言·javascript·ecmascript
爱吃烤鸡翅的酸菜鱼1 小时前
IDEA高效开发:Database Navigator插件安装与核心使用指南
java·开发语言·数据库·编辑器·intellij-idea·database
然我1 小时前
不用 Redux 也能全局状态管理?看我用 useReducer+Context 搞个 Todo 应用
前端·javascript·react.js
前端小巷子1 小时前
Web 实时通信:从短轮询到 WebSocket
前端·javascript·面试
心情好的小球藻2 小时前
Python应用进阶DAY9--类型注解Type Hinting
开发语言·python
惜.己2 小时前
使用python读取json数据,简单的处理成元组数组
开发语言·python·测试工具·json
Y4090012 小时前
C语言转Java语言,相同与相异之处
java·c语言·开发语言·笔记