如何用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 相关文章推荐
IE与Firefox下javascript getyear年份的兼容性写法
Dec 20 Javascript
Javascript模块化编程(一)模块的写法最佳实践
Jan 17 Javascript
js实现简单随机抽奖的方法
Jan 27 Javascript
JavaScript获得表单target属性的方法
Apr 02 Javascript
javascript数据结构之双链表插入排序实例详解
Nov 25 Javascript
javascript基本语法
May 31 Javascript
AngularJS HTML DOM详解及示例代码
Aug 17 Javascript
jQuery事件绑定用法详解
Sep 08 Javascript
使用vue-router完成简单导航功能【推荐】
Jun 28 Javascript
JS多个异步请求 按顺序执行next实现解析
Sep 16 Javascript
layui的数据表格+springmvc实现搜索功能的例子
Sep 28 Javascript
vue h5移动端禁止缩放代码
Oct 28 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实现SAE上使用storage上传与下载文件的方法
2015/06/29 PHP
php实现网页缓存的工具类分享
2015/07/14 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
JQuery的ajax基础上的超强GridView展示
2009/09/18 Javascript
jQuery筛选器children()案例详解(图文)
2013/02/17 Javascript
JavaScript更改字符串的大小写
2015/05/07 Javascript
jquery右下角自动弹出可关闭的广告层
2015/05/08 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
web前端开发JQuery常用实例代码片段(50个)
2015/08/28 Javascript
jQuery Form 表单提交插件之formSerialize,fieldSerialize,fieldValue,resetForm,clearForm,clearFields的应用
2016/01/23 Javascript
学习vue.js条件渲染
2016/12/03 Javascript
Angular2+国际化方案(ngx-translate)的示例代码
2017/08/23 Javascript
js设置随机切换背景图片的简单实例
2017/11/12 Javascript
vue 登录滑动验证实现代码
2018/08/24 Javascript
基于Node.js的大文件分片上传示例
2019/06/19 Javascript
微信小程序 Storage更新详解
2019/07/16 Javascript
小程序如何支持使用 async/await详解
2019/09/12 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
Python自动重试HTTP连接装饰器
2015/04/28 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
Python实现加载及解析properties配置文件的方法
2018/03/29 Python
pandas 数据归一化以及行删除例程的方法
2018/11/10 Python
python面向对象 反射原理解析
2019/08/12 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
CSS3 优势以及网页设计师如何使用CSS3技术
2009/07/29 HTML / CSS
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
Nike香港官网:Nike HK
2019/03/23 全球购物
面向对象概念面试题(.NET)
2016/11/04 面试题
车间班组长的职责
2013/12/13 职场文书
入股协议书范本
2014/04/14 职场文书
个人课题方案
2014/05/08 职场文书
美国留学经济担保书
2014/05/20 职场文书
大型主题婚礼活动策划方案
2014/09/15 职场文书
简易离婚协议书(范本)
2014/10/25 职场文书
捐款仪式主持词
2015/07/04 职场文书
毕业设计工作总结
2015/08/14 职场文书