javascript 动态修改css样式方法汇总(四种方法)


Posted in Javascript onAugust 27, 2015

在很多情况下,都需要对网页上元素的样式进行动态的修改。在JavaScript中提供几种方式动态的修改样式,下面将介绍方法的使用、效果、以及缺陷。

1、使用obj.className来修改样式表的类名。

2、使用obj.style.cssTest来修改嵌入式的css。

3、使用obj.className来修改样式表的类名。

4、使用更改外联的css文件,从而改变元素的css

下面是一段html代码和css代码用来解释上面方法的区别的。

CSS

.style1{margin:10px auto ;background-color:#9999FF; display:block;color:White; border:1px solid white; padding:10px 25px; font-size:18px; }

.style1:hover{ background-color:#66B3FF; cursor:pointer;}

.style2{margin:10px auto ;background-color:gray; display:block;color:black; border:1px solid white; padding:10px 25px; font-size:18px; }

.style2:hover{ background-color:black; color:White; cursor:pointer}

HTML

<div>
  <input id="btnB" type="button" name="btnLogin" value="登录" class="style1" />
  <div id="tool">
   <input type="button" value="【obj.style.className】更改样式" onclick="changeBackgroundColor()"/>
   <input type="button" value="【obj.style.cssText】更改样式" onclick="changeFontSize()" />
   <input type="button" value="【obj.className】更改样式" onclick="addRadius()" />
   <input type="button" value="更改外联css样式" onclick="recover()" />
  </div>
 </div>

方法一、使用obj.className来修改样式表的类名

从下面的代码可以看出ob.style.cssTest是如何来btnB的样式的。

function changeStyle1() {
   var obj = document.getElementById("btnB");
   obj.style.backgroundColor= "black";

 }

该段代码修改btB的文字的颜色,在浏览器中打开调试工具,可以发现btB标签中多了一个属性【style="内联式>外联式。而btB的hove伪类的background-color样式写在内联式中,所以嵌入式的background-color覆盖了伪类中,这就使得鼠标放入btB上感觉不到背景颜色的变化。

方法二、使用obj.style.cssTest来修改嵌入式的css

直接上JavaScript代码:

function changeStyle2() {
   var obj = document.getElementById("btnB");
   obj.style.cssText = "background-color:black; display:block;color:White;

}

该段代码和【一】中的效果是一样的,缺陷也是一样。

方法三、使用obj.className来修改样式表的类名

使用代码来修改btB引用样式的类名,如下段代码:

function changeStyle3() {
   var obj = document.getElementById("btnB");
   //obj.className = "style2";
   obj.setAttribute("class", "style2");
 }

通过更改btB的css的类名的方式来更改样式,更改样式类名有两种方式。1、obj.className = "style2";  2、 obj.setAttribute("class", "style2");都是一样的效果。

用这种方式来修改css比上面的效果要好很多。

方法四、使用更改外联的css文件,从而改变元素的css

通过更改外联的css文件引用从而来更改btB的样式,操作很简单。代码如下:

首先得引用外联的css文件,代码如下:

<link href="css1.css" rel="stylesheet" type="text/css" id="css"/>

function changeStyle4() {
   var obj = document.getElementById("css");
   obj.setAttribute("href","css2.css");
 }

这样也能方便的更改btB的样式,个人觉得这种方式是最好用的,是实现整体页面换肤的最佳方案。

Javascript 相关文章推荐
jQuery autocomplate 自扩展插件、自动完成示例代码
Mar 28 Javascript
javascript 上下banner替换具体实现
Nov 14 Javascript
简单的js图片轮换代码(js图片轮播)
May 06 Javascript
JS日期格式化之javascript Date format
Oct 01 Javascript
深入分析Javascript事件代理
Jan 30 Javascript
JavaScript数据结构之链表的实现
Mar 19 Javascript
重新理解JavaScript的六种继承方式
Mar 24 Javascript
利用纯JS实现像素逐渐显示的方法示例
Aug 14 Javascript
详解vue-cli3使用
Aug 14 Javascript
基于vue-cli npm run build之后vendor.js文件过大的解决方法
Sep 27 Javascript
Vue中错误图片的处理的实现代码
Nov 07 Javascript
Ajax异步刷新功能及简单案例
Nov 20 Javascript
JavaScript实现带箭头标识的多级下拉菜单效果
Aug 27 #Javascript
javascript引用类型之时间Date和数组Array
Aug 27 #Javascript
jQuery实现的数值范围range2dslider选取插件特效多款代码分享
Aug 27 #Javascript
jQuery手机拨号界面特效代码分享
Aug 27 #Javascript
JS实现自动切换文字的导航效果代码
Aug 27 #Javascript
javascript实现自动输出文本(打字特效)
Aug 27 #Javascript
jquery+php随机生成红包金额数量代码分享
Aug 27 #Javascript
You might like
PHP水印类,支持添加图片、文字、填充颜色区域的实现
2017/02/04 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
jquery tab插件制作实现代码
2010/06/22 Javascript
javascript forEach通用循环遍历方法
2010/10/11 Javascript
javascript自动改变文字大小和颜色的效果的小例子
2013/08/02 Javascript
JS 操作Array数组的方法及属性实例解析
2014/01/08 Javascript
HTML+CSS+JS实现完美兼容各大浏览器的TABLE固定列
2015/04/26 Javascript
JavaScript必知必会(十) call apply bind的用法说明
2016/06/08 Javascript
微信小程序  生命周期详解
2016/10/27 Javascript
详解Javascript中DOM的范围
2017/02/13 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信
2019/08/15 Javascript
Python httplib,smtplib使用方法
2008/09/06 Python
Python实现将n个点均匀地分布在球面上的方法
2015/03/12 Python
10种检测Python程序运行时间、CPU和内存占用的方法
2015/04/01 Python
玩转python爬虫之爬取糗事百科段子
2016/02/17 Python
Python判断某个用户对某个文件的权限
2016/10/13 Python
python select.select模块通信全过程解析
2017/09/20 Python
对python pandas中 inplace 参数的理解
2020/06/27 Python
如何实现一个python函数装饰器(Decorator)
2020/10/12 Python
Python学习工具jupyter notebook安装及用法解析
2020/10/23 Python
英国足球店:UK Soccer Shop
2017/11/19 全球购物
受欢迎的大学生自我评价
2013/12/05 职场文书
开会迟到检讨书
2014/01/08 职场文书
函授自我鉴定范文
2014/02/06 职场文书
2015年幼儿园毕业感言
2014/02/12 职场文书
中秋节活动总结
2014/08/29 职场文书
出租车拒载检讨书
2015/01/28 职场文书
检讨书怎么写
2015/05/07 职场文书
2015年英语教学工作总结
2015/05/25 职场文书
详解MySQL InnoDB存储引擎的内存管理
2021/04/08 MySQL
html5调用摄像头截图功能
2022/01/18 Javascript
Win11应用商店打开闪退怎么解决? win11应用商店打不开的多种解决办法
2022/04/05 数码科技
设置IIS Express并发数
2022/07/07 Servers