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 相关文章推荐
js 实现无缝滚动 兼容IE和FF
Jul 15 Javascript
浅谈Javascript嵌套函数及闭包
Nov 09 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
May 07 Javascript
对JavaScript中this指针的新理解分享
Jan 31 Javascript
JavaScript闭包和范围实例详解
Dec 19 Javascript
js实现带简单弹性运动的导航条
Feb 22 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
Mar 06 Javascript
详解vuex中mapState,mapGetters,mapMutations,mapActions的作用
Apr 13 Javascript
vue源码nextTick使用及原理解析
Aug 13 Javascript
Element Input输入框的使用方法
Jul 26 Javascript
vue组件中传值EventBus的使用及注意事项说明
Nov 16 Javascript
在js中修改html body的样式
Nov 11 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中使用register_shutdown_function函数截获fatal error示例
2015/04/21 PHP
PHP错误机制知识汇总
2016/03/24 PHP
php mysql数据库操作类(实例讲解)
2017/08/06 PHP
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
jQuery源码分析-03构造jQuery对象-工具函数
2011/11/14 Javascript
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
javascript学习笔记(一)基础知识
2014/09/30 Javascript
Javascript实现颜色rgb与16进制转换的方法
2015/04/18 Javascript
Javascript实现鼠标右键特色菜单
2015/08/04 Javascript
jQuery模拟物体自由落体运动(附演示与demo源码下载)
2016/01/21 Javascript
Bootstrap基本布局实现方法详解
2016/11/25 Javascript
浅谈Node.js:理解stream
2016/12/08 Javascript
jQuery序列化后的表单值转换成Json
2017/06/16 jQuery
如何将HTML字符转换为DOM节点并动态添加到文档中详解
2018/08/19 Javascript
Element-ui中元素滚动时el-option超出元素区域的问题
2019/05/30 Javascript
layer.open组件获取弹出层页面变量、函数的实例
2019/09/25 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
pytorch 加载(.pth)格式的模型实例
2019/08/20 Python
python 解决tqdm模块不能单行显示的问题
2020/02/19 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
浅析rem和em和px vh vw和% 移动端长度单位
2016/04/28 HTML / CSS
如何在Oracle中查看各个表、表空间占用空间的大小
2015/10/31 面试题
.NET笔试题(20个问题)
2016/02/02 面试题
校园自助餐厅的创业计划书
2013/12/26 职场文书
个人公司授权委托书范本
2014/10/12 职场文书
上课说话检讨书500字
2014/11/01 职场文书
感谢信格式范文
2015/01/22 职场文书
2015最新学生自我评价范文
2015/03/03 职场文书
Python 中 Shutil 模块详情
2021/11/11 Python
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python