JavaScript

JS控制css样式的几种方式

字数:1089    阅读时间:6min
阅读量:15115

我们在js的工作学习中总会遇到一些不轻易通过style属性动态加载css样式的情况(eg:伪类的样式控制,动画的样式控制),这里总结一下js改变样式的几种方法:

1,通过style属性或者setAttribute()来更改样式
2,如果只是改变伪类(after,before)的content内容也可以这么做
3,通过更改类名来更改样式
4,那么重点来了:利用document.styleSheets我们获取到所有样式表,然后选择一个样式表通过 insertRule 来添加样式;也可以创建新的cssRules,通过addRule()来添加样式
  • document.styleSheets:获取到的是所有样式列表的集合
    • href:通过link标签引入的样式表,则是样式表的URL,否则为null
    • media:当前样式表支持的所有媒体类型集合
    • type:样式表类型的字符串
    • disabled: 通过disabled来屏蔽掉该样式表,可以用来切换样式表 ; document.styleSheets[i].disabled = true
    • cssRules:是当前样式列表的所有样式集合;document.styleSheets[i].cssRules
      • cssText:当前样式表的某一个样式的样式document.styleSheets[i].cssRules[i].cssText
      • selectorText:当前样式的选择符
      • parentStyleSheet:当前规则所属样式表;IE不支持
    • insertRule(rule,index):在index前插入一条rule新规则; document.styleSheets[0].insertRule('* {background:blue;color:#000}',0)不支持IE;document.styleSheets[0].addRule('*',' {background:blue;color:#000}',0)支持IE;
    • deleteRule(index):删除某个央视列表的第index个样式;IE用removeRule(index)
5,动态加载样式表

如果需要更改的样式比较多,还是建议通过动态加载样式的方式来改变页面样式

暂时就想到这么几种,后续补充

野生小园猿
励志做一只遨游在知识海洋里的小白鲨
查看“野生小园猿”的所有文章 →

相关推荐