js如何控制css
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要讲解了"js如何控制css",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"js如何控制css"吧!js控制css的方法:1、通过style属
千家信息网最后更新 2025年12月02日js如何控制css
这篇文章主要讲解了"js如何控制css",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"js如何控制css"吧!
js控制css的方法:1、通过style属性或者"setAttribute()"来更改样式;2、改变伪类"(after,before)"的"content"内容;3、通过更改类名来更改样式等等。
本文操作环境:windows7系统、javascript1.8.5&&CSS3版,DELL G3电脑
js如何控制css?
JS控制css样式的几种方式
我们在js的工作学习中总会遇到一些不轻易通过style属性动态加载css样式的情况(eg:伪类的样式控制,动画的样式控制),这里总结一下js改变样式的几种方法:
1,通过style属性或者setAttribute()来更改样式
ele.style.width='50px';//最常用ele.style.cssText='width:50px';//并不会覆盖原先所有cssele.style.setProperty("width", "50px", "important");//可以传第三个参数ele.setAttribute("style", "width: 50px")//也不会覆盖原先所有css放心用ele.style.width='50px';//最常用ele.style.cssText='width:50px';//并不会覆盖原先所有cssele.style.setProperty("width", "50px", "important");//可以传第三个参数ele.setAttribute("style", "width: 50px")//也不会覆盖原先所有css放心用2,如果只是改变伪类(after,before)的content内容也可以这么做
//css代码div::after{ content:attr(data-myadd); width:10px;}//js代码div.setAttribute('data-myadd',需要动态加载的内容)//css代码div::after{ content:attr(data-myadd); width:10px;}//js代码div.setAttribute('data-myadd',需要动态加载的内容)3,通过更改类名来更改样式
ele.className='';ele.classList.add();//emmmm没什么好说的
ele.className='';ele.classList.add();//emmmm没什么好说的
4,那么重点来了:利用document.styleSheets我们获取到所有样式表,然后选择一个样式表通过 insertRule 来添加样式;也可以创建新的cssRules,通过addRule()来添加样式
document.styleSheets:获取到的是所有样式列表的集合href:通过link标签引入的样式表,则是样式表的URL,否则为nullmedia:当前样式表支持的所有媒体类型集合type:样式表类型的字符串disabled: 通过disabled来屏蔽掉该样式表,可以用来切换样式表 ; document.styleSheets[i].disabled = truecssRules:是当前样式列表的所有样式集合;document.styleSheets[i].cssRulescssText:当前样式表的某一个样式的样式document.styleSheets[i].cssRules[i].cssTextselectorText:当前样式的选择符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)//使用document.styleSheets获取样式表的时候最好获取最后一个,在最后一个样式表上添加样式var sheets=document.styleSheets;var lastSheet=sheets[sheets.length-1];lastSheet.insertRule('#div{width:10px}',index)//将#div样式直接添加到cssRules中;index是添加到第几条;现代浏览器lastSheet.addRule('div','width:10px;',0)//IE浏览器//使用document.styleSheets获取样式表的时候最好获取最后一个,在最后一个样式表上添加样式var sheets=document.styleSheets;var lastSheet=sheets[sheets.length-1];lastSheet.insertRule('#div{width:10px}',index)//将#div样式直接添加到cssRules中;index是添加到第几条;现代浏览器lastSheet.addRule('div','width:10px;',0)//IE浏览器5,动态加载样式表
如果需要更改的样式比较多,还是建议通过动态加载样式的方式来改变页面样式
//改变样式文件的引用function loadStyle(url){ var link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = url; var head = document.getElementsByTagName('head')[0]; head.appendChild(link);}loadStyle('test.css');//动态加载css代码片段var style = document.createElement('style'); style.type = 'text/css'; style.rel = 'stylesheet'; try{ //Chrome Firefox Opera Safari style .appendChild(document.createTextNode(code)); }catch(ex){//IE style.styleSheet.cssText = code; } var head = document.getElementsByTagName('head')[0]; head.appendChild(style);}loadCssCode('body{background-color:#f00}');//改变样式文件的引用function loadStyle(url){ var link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = url; var head = document.getElementsByTagName('head')[0]; head.appendChild(link);}loadStyle('test.css'); //动态加载css代码片段var style = document.createElement('style'); style.type = 'text/css'; style.rel = 'stylesheet'; try{ //Chrome Firefox Opera Safari style .appendChild(document.createTextNode(code)); }catch(ex){//IE style.styleSheet.cssText = code; } var head = document.getElementsByTagName('head')[0]; head.appendChild(style);}loadCssCode('body{background-color:#f00}');感谢各位的阅读,以上就是"js如何控制css"的内容了,经过本文的学习后,相信大家对js如何控制css这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
样式
控制
动态
代码
内容
浏览器
学习
支持
浏览
属性
好说
没什么
三个
参数
常用
情况
文件
方式
方法
时候
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
哪里有培训网络技术
全流程刷脸就医软件开发
数据库用户模式
长沙博点网络技术
服务器的安全策略
武汉国家网络安全学院图片
新兴网络技术与传统媒体的结合
闵行区市场软件开发代理商
湖南师大游戏软件开发
软件开发资源部署策略
软件开发造价应由哪些机构来做
广州讯鸿网络技术有限公司
有多少ERP软件开发商
由服务器管理
网络安全管理与信息系统就业
orcle数据库定时备份
计算机网络安全介绍视频
选择计算机网络技术专业的原因
软件开发商必要文档
网络安全工程师发展方向灵活
嵌入式软件开发太原
可怕服务器
网络安全法宣传语
网络安全纵深防御系统
网络安全产品效果图室内
关系数据库有几类完整性
静态网怎么添加数据库
模式名是数据库名吗
方舟服务器自动执行的任务
人脸识别软件开发费用