如何用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 相关文章推荐
js 链式延迟执行DOME
Jan 04 Javascript
jQuery拖动图片删除示例
May 10 Javascript
js中运算符&amp;&amp; 和 || 的使用记录
Aug 21 Javascript
JavaScript实现检查页面上的广告是否被AdBlock屏蔽了的方法
Nov 03 Javascript
js使用DOM操作实现简单留言板的方法
Apr 10 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
Oct 16 Javascript
日常收集整理的JavaScript常用函数方法
Dec 10 Javascript
Javascript设计模式之观察者模式(推荐)
Mar 29 Javascript
js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果
Jul 17 Javascript
vue-cli常用设置总结
Feb 24 Javascript
node.js连接mysql与基本用法示例
Jan 05 Javascript
vue实现输入一位数字转汉字功能
Dec 13 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函数之子字符串替换&amp;#65279; str_replace
2011/03/23 PHP
PHP+MYSQL会员系统的登陆即权限判断实现代码
2011/09/23 PHP
在Thinkphp中使用ajax实现无刷新分页的方法
2016/10/25 PHP
php实现映射操作实例详解
2019/10/02 PHP
php高性能日志系统 seaslog 的安装与使用方法分析
2020/02/29 PHP
ASP Json Parser修正版
2009/12/06 Javascript
javascript css styleFloat和cssFloat
2010/03/15 Javascript
jQuery中[attribute=value]选择器用法实例
2014/12/31 Javascript
node-webkit打包成exe文件被360误报木马的解决方法
2015/03/11 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
Angular.js回顾ng-app和ng-model使用技巧
2016/04/26 Javascript
JS hashMap实例详解
2016/05/26 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
详解基于javascript实现的苹果系统底部菜单
2016/12/02 Javascript
浅析JavaScript中作用域和作用域链
2016/12/06 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
python链接Oracle数据库的方法
2015/06/28 Python
Python线性回归实战分析
2018/02/01 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
40行Python代码实现天气预报和每日鸡汤推送功能
2020/02/27 Python
Python object类中的特殊方法代码讲解
2020/03/06 Python
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
联想澳大利亚官网:Lenovo Australia
2018/01/18 全球购物
TIME时代杂志台湾总代理:台时亚洲
2018/10/22 全球购物
电大自我鉴定范文
2013/10/01 职场文书
店长岗位的工作内容
2013/11/12 职场文书
销售心得体会
2014/01/02 职场文书
留学推荐信中文范文三篇
2014/01/25 职场文书
五好党支部事迹材料
2014/02/06 职场文书
党的群众路线批评与自我批评范文
2014/10/16 职场文书
Golang的继承模拟实例
2021/06/30 Golang
Redis基本数据类型Set常用操作命令
2022/06/01 Redis