如何用JavaScript实现动态修改CSS样式表


Posted in Javascript onMay 20, 2016

看过我写的《用JavaScript动态建立或增加CSS样式表的实现方法》之后,你就很容易想明白如何修改CSS样式表了。

正好今天在论坛碰到一位朋友问这样的一个问题:

<style>
.ls{width=120px;}
</style>
<script>
//在这里加一句来改变.ls中width的值,如何写
</script>

有的朋友回答:“如果使用.ls的对象很多的话,用JS确实不方便, jquery方便,$(".ls").width(200);这样就行”。

他是想用JQ的类选择器.ls选择所有使用这个样式的对象,对它们逐个进行调整,而非更改CSS样式表,所以会有“对象很多”的顾虑。

但问题是,这只是改了那些对象的具体表现样式,而并非改了.LS的设置。如果再出现一个使用.LS风格的元素,它还是老样子,你还需要对这个元素再去调整,治标不治本。而且这种方式也决定了不可能简单地通过一句话就实现。

这样想的人还不少,而如果你看了《用JavaScript动态建立或增加CSS样式表的实现方法》这篇文章之后,相信你很容易就想到如何用一句话来解决这个问题,既简洁高效(浏览器会自动重新设置所有应用这个样式的元素),而且真正的修改了样式设置,新增的使用这个样式的元素将自动应用被修改过的设置。于是,你已经学到了和很多人区分开来的更高阶的知识。下面我把方法具体再说一下:

由于上面的例子,不容易看出效果,我下面另外写了个例子,通过颜色的改变,比较容易看到效果:

<STYLE>
	.theforever {width:50px;color:red;}
	#theforever {width:150px;color:silver;}
</STYLE>
<div class="theforever">这里应该是红色的,但它会被下面的JS通过改变CSS样式设置而变成黄色</div>
<div id="theforever">这里应该是银灰色的,的确这个不会发生变化,只作为对比</div>
<script>
document.styleSheets[0].cssText=document.styleSheets[0].cssText.replace(/red/g,"yellow");
//一句,不就OK了?
</script>

上面的例子,针对的不是某个特定的样式名称,而是泛泛的颜色(如果你直接挪到含有更为复杂的CSS页面里,其中有不表示颜色的RED字样,这还会导致错误。我对不动脑子的代码拿来主义者一向极其反感,不作过多指示),但如果想要针对特定的样式名称进行更改,同样很容易:

从上面,可以看出document.styleSheets[0].cssText就是整个<STYLE></STYLE>内部的内容,相当于一个字串变量,所以假如针对.LS要改变它的设置,只需要把“.ls{width=120px;}”作为 replace 要替换的部分,把“.ls{width=555px;}”作为替换目标,这样就行了。

以上这篇如何用JavaScript实现动态修改CSS样式表就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript中的关于类型转换的性能优化
Dec 14 Javascript
js获取本机的外网/广域网ip地址完整源码
Aug 12 Javascript
jQuery语法小结(超实用)
Dec 31 Javascript
js变量提升深入理解
Sep 16 Javascript
jQuery 特性操作详解及实例代码
Sep 29 Javascript
JS实现点击表头表格自动排序(含数字、字符串、日期)
Jan 22 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
Feb 13 Javascript
JavaScript箭头函数_动力节点Java学院整理
Jun 28 Javascript
javascript 中模板方法单例的实现方法
Oct 17 Javascript
如何用Node写页面爬虫的工具集
Oct 26 Javascript
小程序的上传文件接口的注意要点解析
Sep 17 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
Jul 30 Javascript
JavaScript中的跨浏览器事件操作的基本方法整理
May 20 #Javascript
用JavaScript动态建立或增加CSS样式表的实现方法
May 20 #Javascript
详解JavaScript中的事件流和事件处理程序
May 20 #Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
May 20 #Javascript
JavaScript中的Object对象学习教程
May 20 #Javascript
jQuery基本选择器(实例及表单域value的获取方法)
May 20 #Javascript
jQuery的实例及必知重要的jQuery选择器详解
May 20 #Javascript
You might like
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
面向对象的编程思想在javascript中的运用上部
2009/11/20 Javascript
超轻量级的基于jquery的三级展开列表
2011/04/26 Javascript
js螺旋动画效果的具体实例
2013/11/15 Javascript
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
2014/01/10 Javascript
JavaScript通过Date-Mask将日期转换成字符串的方法
2015/06/04 Javascript
SublimeText自带格式化代码功能之reindent
2015/12/27 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
JavaScript文本框脚本编写的注意事项
2016/01/25 Javascript
JS模拟的Map类实现方法
2016/06/17 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
详解在AngularJS的controller外部直接获取$scope
2017/06/02 Javascript
vue component组件使用方法详解
2017/07/14 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
Vuex持久化插件(vuex-persistedstate)解决刷新数据消失的问题
2019/04/16 Javascript
基于Bootstrap和JQuery实现动态打开和关闭tab页的实例代码
2019/06/10 jQuery
vue中created和mounted的区别浅析
2019/08/13 Javascript
vuex存储token示例
2019/11/11 Javascript
javascript 内存模型实例详解
2020/04/18 Javascript
Node.js API详解之 dns模块用法实例分析
2020/05/15 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
解决vue-photo-preview 异步图片放大失效的问题
2020/07/29 Javascript
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
python 计算两个日期相差多少个月实例代码
2017/05/24 Python
TensorFlow如何实现反向传播
2018/02/06 Python
Python 数值区间处理_对interval 库的快速入门详解
2018/11/16 Python
Python高级特性之闭包与装饰器实例详解
2019/11/19 Python
Python 实现一行输入多个数字(用空格隔开)
2020/04/29 Python
使用Keras建立模型并训练等一系列操作方式
2020/07/02 Python
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
2013/02/07 HTML / CSS
W3C公布最新的HTML5标准草案
2008/10/17 HTML / CSS
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
计算s=f(f(-1.4))的值
2014/05/06 面试题
商场父亲节活动方案
2014/08/27 职场文书
涨价通知
2015/04/23 职场文书
2015年出纳工作总结与计划
2015/05/18 职场文书