如何用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 相关文章推荐
wordpress之js库集合研究介绍
Aug 17 Javascript
javascript oop开发滑动(slide)菜单控件
Aug 25 Javascript
Jquery插件之多图片异步上传
Oct 20 Javascript
深入理解javascript学习笔记(一) 编写高质量代码
Aug 09 Javascript
jQuery实现文本框输入同步的方法
Jun 20 Javascript
如何利用JS通过身份证号获取当事人的生日、年龄、性别
Jan 22 Javascript
javascript如何实现360度全景照片问题汇总
Apr 04 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
May 03 Javascript
浅谈jquery.form.js的ajaxSubmit和ajaxForm的使用
Sep 09 Javascript
JavaScript交换两个变量值的七种解决方案
Dec 01 Javascript
Javascript中call,apply,bind方法的详解与总结
Dec 12 Javascript
基于mpvue小程序使用echarts画折线图的方法示例
Apr 24 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
PHP4实际应用经验篇(8)
2006/10/09 PHP
PHP 一个随机字符串生成代码
2010/05/26 PHP
PHP中构造函数和析构函数解析
2014/10/10 PHP
PHP两个n位的二进制整数相加问题的解决
2018/08/26 PHP
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
jquery 年会抽奖程序
2011/12/22 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
jquery实现滑屏大图定时收缩为小banner图片的广告代码
2015/09/02 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
基于JavaScript实现动态添加删除表格的行
2016/02/01 Javascript
JavaScript判断图片是否已经加载完毕的方法汇总
2016/02/05 Javascript
Bootstrap3制作图片轮播效果
2016/05/12 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
Angular2实现组件交互的方法分析
2017/12/19 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
通过webpack引入第三方库的方法
2018/07/20 Javascript
简单分析js中的this的原理
2019/08/31 Javascript
javascript的惯性运动实现代码实例
2019/09/07 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
[04:31]2016国际邀请赛中国区预选赛妖精采访
2016/06/27 DOTA
python在命令行下使用google翻译(带语音)
2014/01/16 Python
解决python写的windows服务不能启动的问题
2014/04/15 Python
python实现的希尔排序算法实例
2015/07/01 Python
快速入手Python字符编码
2016/08/03 Python
Python Tkinter实现简易计算器功能
2018/01/30 Python
Django自定义全局403、404、500错误页面的示例代码
2020/03/08 Python
pycharm 实现本地写代码,服务器运行的操作
2020/06/08 Python
keras在构建LSTM模型时对变长序列的处理操作
2020/06/29 Python
Python连接mysql数据库及简单增删改查操作示例代码
2020/08/03 Python
用CSS3实现无限循环的无缝滚动的实例代码
2017/07/04 HTML / CSS
解决html5中video标签无法播放mp4问题的办法
2017/05/07 HTML / CSS
技校学生个人职业生涯规划范文
2014/03/03 职场文书
司法局火灾防控方案
2014/06/05 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers