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 相关文章推荐
JsEasy简介 JsEasy是什么?与下载
Mar 07 Javascript
跟我一起学写jQuery插件开发方法(附完整实例及下载)
Apr 01 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
Apr 29 Javascript
JavaScript通过事件代理高亮显示表格行的方法
May 27 Javascript
JS获取下拉框显示值和判断单选按钮的方法
Jul 09 Javascript
javascript日期验证之输入日期大于等于当前日期
Dec 13 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
Oct 18 Javascript
jquery实现输入框实时输入触发事件代码
Dec 21 Javascript
vue+mousemove实现鼠标拖动功能(拖动过快失效问题解决方法)
Aug 24 Javascript
小程序云开发初探(小结)
Oct 24 Javascript
微信小程序动态添加和删除组件的现实
Feb 28 Javascript
vite2.0+vue3移动端项目实战详解
Mar 03 Vue.js
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
ThinkPHP模板Volist标签嵌套循环输出多维数组的方法
2016/03/23 PHP
php基于curl重写file_get_contents函数实例
2016/11/08 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
Ajax执行顺序流程及回调问题分析
2012/12/10 Javascript
JS格式化数字金额用逗号隔开保留两位小数
2013/10/18 Javascript
jquery实现先淡出再折叠收起的动画效果
2015/08/07 Javascript
jquery自适应布局的简单实例
2016/05/28 Javascript
jQuery搜索框效果实现代码(百度关键词联想)
2021/02/25 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
JS实现给json数组动态赋值的方法示例
2020/03/19 Javascript
iframe与主框架跨域相互访问实现方法
2017/09/14 Javascript
vue 项目如何引入微信sdk接口的方法
2017/12/18 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
基于ajax及jQuery实现局部刷新过程解析
2020/09/12 jQuery
Vue组件间数据传递的方式(3种)
2020/07/13 Javascript
微信小程序canvas动态时钟
2020/10/22 Javascript
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
python中argparse模块用法实例详解
2015/06/03 Python
Python数据类型学习笔记
2016/01/13 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
Python Django基础二之URL路由系统
2019/07/18 Python
Python使用random模块生成随机数操作实例详解
2019/09/17 Python
Python调用jar包方法实现过程解析
2020/08/11 Python
CSS3实现头像旋转效果
2017/03/13 HTML / CSS
某IT外企面试题-二分法求方程!看看大家的C++功底
2015/07/04 面试题
大学生军训感想
2014/02/16 职场文书
技能竞赛活动方案
2014/02/21 职场文书
民警群众路线教育实践活动对照检查材料
2014/10/04 职场文书
2015年小学体育工作总结
2015/05/22 职场文书
关于感恩的作文
2019/08/26 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android