如何用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文件的函数代码分享
Jul 28 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
Nov 30 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
Jun 30 Javascript
jquery 实现两Select 标签项互调示例代码
Sep 25 Javascript
基于豆瓣API+Angular开发的web App
Jan 02 Javascript
jQuery学习笔记之2个小技巧
Jan 19 Javascript
JavaScript对HTML DOM使用EventListener进行操作
Oct 21 Javascript
easyUI实现类似搜索框关键词自动提示功能示例代码
Dec 27 Javascript
jQuery实现的粘性滚动导航栏效果实例【附源码下载】
Oct 19 jQuery
Angular Renderer (渲染器)的具体使用
May 03 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
Jun 15 Javascript
JavaScript闭包原理与用法学习笔记
May 29 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
深入PHP购物车模块功能分析(函数讲解,附源码)
2013/06/25 PHP
图解找出PHP配置文件php.ini的路径的方法
2014/08/20 PHP
thinkPHP+ajax实现统计页面pv浏览量的方法
2017/03/15 PHP
php中bind_param()函数用法分析
2017/03/28 PHP
JavaScript 异步调用框架 (Part 5 - 链式实现)
2009/08/04 Javascript
firefox浏览器用jquery.uploadify插件上传时报HTTP 302错误
2015/03/01 Javascript
整理Javascript事件响应学习笔记
2015/12/02 Javascript
微信小程序 实现拖拽事件监听实例详解
2016/11/16 Javascript
Vue.js实战之Vuex的入门教程
2017/04/01 Javascript
微信小程序获取用户openId的实现方法
2017/05/23 Javascript
javascript 玩转Date对象(实例讲解)
2017/07/11 Javascript
vuex学习之Actions的用法详解
2017/08/29 Javascript
jquery 一键复制到剪切板的实例
2017/09/20 jQuery
Vue底层实现原理总结
2018/02/17 Javascript
解决vue项目nginx部署到非根目录下刷新空白的问题
2018/09/27 Javascript
vue-cli系列之vue-cli-service整体架构浅析
2019/01/14 Javascript
Electron vue的使用教程图文详解
2019/07/05 Javascript
使用python开发vim插件及心得分享
2014/11/04 Python
Python实现建立SSH连接的方法
2015/06/03 Python
在Python的Django框架中为代码添加注释的方法
2015/07/16 Python
对python中的xlsxwriter库简单分析
2018/05/04 Python
python找出完数的方法
2018/11/12 Python
Pandas数据离散化原理及实例解析
2019/11/16 Python
Tensorflow累加的实现案例
2020/02/05 Python
mac安装python3后使用pip和pip3的区别说明
2020/09/01 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
美国女士时尚珠宝及配饰购物网站:Icing
2018/07/02 全球购物
Linux如何命名文件--使用文件名时应注意
2012/01/22 面试题
幼师求职自荐信范文
2014/01/26 职场文书
分家协议书
2014/04/21 职场文书
空气环保标语
2014/06/12 职场文书
八项规定个人对照检查材料思想汇报
2014/09/25 职场文书
八项规定整改方案
2014/10/01 职场文书
英语导游词
2015/02/13 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
python数字类型和占位符详情
2022/03/13 Python