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 相关文章推荐
用JavaScrpt实现文件夹简单轻松加密的实现方法图文
Sep 08 Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
Mar 08 Javascript
控制input输入框中提示信息的显示和隐藏的方法
Feb 12 Javascript
javascript避免数字计算精度误差的方法详解
Mar 05 Javascript
基于Javascript实现二级联动菜单效果
Mar 04 Javascript
什么是JavaScript中的结果值?
Oct 08 Javascript
完美解决jQuery fancybox ie 无法显示关闭按钮的问题
Nov 29 Javascript
javascript使用btoa和atob来进行Base64转码和解码
Mar 20 Javascript
[js高手之路]单例模式实现模态框的示例
Sep 01 Javascript
Echarts之悬浮框中的数据排序问题
Nov 08 Javascript
基于Vue实现图片在指定区域内移动的思路详解
Nov 11 Javascript
WEB前端性能优化的7大手段详解
Feb 04 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 mysql索引问题
2008/06/07 PHP
php从字符串创建函数的方法
2015/03/16 PHP
一个关于javascript匿名函数的问题分析
2012/03/30 Javascript
jquery中邮箱地址 URL网站地址正则验证实例代码
2013/09/15 Javascript
JavaScript版的TwoQueues缓存模型
2014/12/29 Javascript
15个值得开发人员关注的jQuery开发技巧和心得总结【经典收藏】
2016/05/25 Javascript
js操作DOM--添加、删除节点的简单实例
2016/07/08 Javascript
微信小程序 教程之注册程序
2016/10/17 Javascript
jQuery实现的简单动态添加、删除表格功能示例
2017/09/21 jQuery
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
vue2.0 父组件给子组件传递数据的方法
2018/01/15 Javascript
angular基于ng-alain定义自己的select组件示例
2018/02/23 Javascript
webuploader分片上传的实现代码(前后端分离)
2018/09/10 Javascript
详解node字体压缩插件font-spider的用法
2018/09/28 Javascript
mpvue小程序循环动画开启暂停的实现方法
2019/05/15 Javascript
iSlider手机端图片滑动切换插件使用详解
2019/12/24 Javascript
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
python套接字流重定向实例汇总
2016/03/03 Python
Python for Informatics 第11章之正则表达式(四)
2016/04/21 Python
Python 自动刷博客浏览量实例代码
2017/06/14 Python
python实现批量命名照片
2020/06/18 Python
python计算auc的方法
2020/09/09 Python
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
学生学习总结的自我评价
2013/10/22 职场文书
教师的实习鉴定
2013/12/15 职场文书
拓展培训心得体会
2014/01/04 职场文书
本科毕业生应聘自荐信范文
2014/06/26 职场文书
过程装备与控制工程专业求职信
2014/07/02 职场文书
商务经理岗位职责
2014/07/30 职场文书
2014年图书馆个人工作总结
2014/12/18 职场文书
学前班幼儿评语大全
2014/12/29 职场文书
2015年度合同管理工作总结
2015/05/22 职场文书
三十年同学聚会感言
2015/07/30 职场文书
Java Shutdown Hook场景使用及源码分析
2021/06/15 Java/Android
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript