如何用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 利用StringBuffer类提升+=拼接字符串效率
Nov 24 Javascript
iframe 异步加载技术及性能分析
Jul 19 Javascript
JS连连看源码完美注释版(推荐)
Dec 09 Javascript
jfreechart插件将数据展示成饼状图、柱状图和折线图
Apr 13 Javascript
jQuery获取复选框被选中数量及判断选择值的方法详解
May 25 Javascript
javaScript给元素添加多个class的简单实现
Jul 20 Javascript
浅谈jquery上下滑动的注意事项
Oct 13 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
Oct 21 Javascript
vue使用jsonp抓取qq音乐数据的方法
Jun 21 Javascript
重学JS 系列:聊聊继承(推荐)
Apr 11 Javascript
js实现无刷新监听URL的变化示例代码详解
Jun 03 Javascript
JavaScript构造函数原理及实现流程解析
Nov 19 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
discuz安全提问算法
2007/06/06 PHP
PHP简单获取视频预览图的方法
2015/03/12 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
PHP给文字内容中的关键字进行套红处理
2016/04/12 PHP
yii2 页面底部加载css和js的技巧
2016/04/21 PHP
Javascript 陷阱 window全局对象
2008/11/26 Javascript
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
Mootools 1.2 手风琴(Accordion)教程
2009/09/15 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
JQuery限制复选框checkbox可选中个数的方法
2015/04/20 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
angular实现图片懒加载实例代码
2017/06/08 Javascript
详解Angular调试技巧之报错404(not found)
2018/01/31 Javascript
如何用webpack4带你实现一个vue的打包的项目
2018/06/20 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
[41:52]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第二场 2月22日
2021/03/11 DOTA
Python中的random()方法的使用介绍
2015/05/15 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
python+django加载静态网页模板解析
2017/12/12 Python
CentOS7下python3.7.0安装教程
2018/07/30 Python
解决pytorch DataLoader num_workers出现的问题
2020/01/14 Python
Pytorch 使用 nii数据做输入数据的操作
2020/05/26 Python
Python+Kepler.gl轻松制作酷炫路径动画的实现示例
2020/06/02 Python
python 如何对logging日志封装
2020/12/02 Python
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
Python的两道面试题
2013/06/29 面试题
临床医学系毕业生推荐信
2013/11/09 职场文书
如何掌握自荐信格式呢
2013/11/19 职场文书
高三自我评价
2014/02/01 职场文书
博士导师推荐信
2015/03/25 职场文书
看雷锋电影观后感
2015/06/10 职场文书
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python