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 相关文章推荐
javascript中最常用的继承模式 组合继承
Aug 12 Javascript
js操作textarea方法集合封装(兼容IE,firefox)
Feb 22 Javascript
关于js datetime的那点事
Nov 15 Javascript
基于jQuery的弹出框插件
Mar 18 Javascript
jquery统计输入文字的个数并对其进行判断
Jan 07 Javascript
js和css写一个可以自动隐藏的悬浮框
Mar 05 Javascript
深入分析Javascript事件代理
Jan 30 Javascript
vue左右侧联动滚动的实现代码
Jun 06 Javascript
JavaScript使用math.js进行精确计算操作示例
Jun 19 Javascript
详解微信小程序获取当前时间及日期的方法
Apr 28 Javascript
微信小程序页面间传递数组对象方法解析
Nov 06 Javascript
全面解析JavaScript Module模式
Jul 24 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
世界上第一台立体声收音机
2021/03/01 无线电
Thinkphp多文件上传实现方法
2014/10/31 PHP
php获取从html表单传递数组的方法
2015/03/20 PHP
jquery中常用的SET和GET
2009/01/13 Javascript
DWR Ext 加载数据
2009/03/22 Javascript
jQuery 插件 将this下的div轮番显示
2009/04/09 Javascript
jQuery实现复选框批量选择与反选的方法
2015/06/17 Javascript
原生js页面滚动延迟加载图片
2015/12/20 Javascript
Javascript动画效果(2)
2016/10/11 Javascript
使用Curl命令查看请求响应时间方法
2016/11/04 Javascript
微信小程序 免费SSL证书https、TLS版本问题的解决办法
2016/12/14 Javascript
AngularJS开发教程之控制器之间的通信方法分析
2016/12/25 Javascript
在vue项目中使用md5加密的方法
2018/09/14 Javascript
原生js实现ajax请求和JSONP跨域请求操作示例
2020/03/14 Javascript
微信小程序实现弹框效果
2020/05/26 Javascript
vue商城中商品“筛选器”功能的实现代码
2020/07/01 Javascript
Vue实现圆环进度条的示例
2021/02/06 Vue.js
[44:40]KG vs LGD 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python模块学习 filecmp 文件比较
2012/08/27 Python
在Python程序中进行文件读取和写入操作的教程
2015/04/28 Python
Python实现批量下载图片的方法
2015/07/08 Python
利用numpy实现一、二维数组的拼接简单代码示例
2017/12/15 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
超简单使用Python换脸实例
2019/03/27 Python
python文本数据处理学习笔记详解
2019/06/17 Python
Ubuntu权限不足无法创建文件夹解决方案
2020/11/14 Python
python元组拆包实现方法
2021/02/28 Python
Html5原生拖拽相关事件简介以及基础实现
2020/11/19 HTML / CSS
雅诗兰黛澳大利亚官网:Estée Lauder澳大利亚
2019/05/31 全球购物
十八届三中全会个人学习材料
2014/02/13 职场文书
电工工作职责范本
2014/02/22 职场文书
党员“四风”方面存在问题及整改措施
2014/09/24 职场文书
详解Python requests模块
2021/06/21 Python
php实例化对象的实例方法
2021/11/17 PHP
SSM项目使用拦截器实现登录验证功能
2022/01/22 Java/Android
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫