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 UI Datepicker length为空或不是对象错误的解决方法
Dec 19 Javascript
js弹出窗口之弹出层的小例子
Jun 17 Javascript
kindeditor编辑器点中图片滚动条往上顶的bug
Jul 05 Javascript
JavaScript中判断两个字符串是否相等的方法
Jul 07 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
Aug 27 Javascript
javascript入门教程基础篇
Nov 16 Javascript
如何使用jquery修改css中带有!important的样式属性
Apr 28 Javascript
jquery实现图片平滑滚动详解
Mar 22 jQuery
详解ES6之用let声明变量以及let loop机制
Jul 15 Javascript
JS获取并处理php数组的方法实例分析
Sep 04 Javascript
vue将毫秒数转化为正常日期格式的实例
Sep 16 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
May 27 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造成压力的解决方法
2013/02/21 PHP
php求正负数数组中连续元素最大值示例
2014/04/11 PHP
php实现源代码加密的方法
2015/07/11 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
PHP html_entity_decode()函数讲解
2019/02/25 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
Laravel实现ORM带条件搜索分页
2019/10/24 PHP
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
jQuery实现隔行背景色变色
2014/11/24 Javascript
iscroll碰到Select无法选择下拉刷新的解决办法
2016/05/21 Javascript
javascript经典特效分享 手风琴、轮播图、图片滑动
2016/09/14 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
JavaScript评论点赞功能的实现方法
2017/03/13 Javascript
three.js中3D视野的缩放实现代码
2017/11/16 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
vue路由传参页面刷新参数丢失问题解决方案
2019/10/08 Javascript
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
vuex分模块后,实现获取state的值
2020/07/26 Javascript
python根据京东商品url获取产品价格
2015/08/09 Python
Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法
2016/04/23 Python
python实现简易版计算器
2020/06/22 Python
Django自定义manage命令实例代码
2018/02/11 Python
python批量创建指定名称的文件夹
2019/03/21 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
2019/03/22 Python
Python使用贪婪算法解决问题
2019/10/22 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
python golang中grpc 使用示例代码详解
2020/06/03 Python
俄罗斯护发和专业化妆品购物网站:Hihair
2019/09/28 全球购物
Visual-Click葡萄牙:欧洲领先的在线眼镜商
2020/02/17 全球购物
大学毕业生通用求职信
2013/09/28 职场文书
留学自荐信
2013/10/10 职场文书
个人求职信范文分享
2014/01/06 职场文书
2014大学校园光棍节活动策划书
2014/09/29 职场文书
月考总结与反思
2015/10/22 职场文书
pytorch中的numel函数用法说明
2021/05/13 Python
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS