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 相关文章推荐
文本框回车提交与禁止提交示例
Sep 27 Javascript
jQuery+ajax实现鼠标单击修改内容的思路
Jun 29 Javascript
jQuery插件支持同一页面被多次调用
Feb 14 Javascript
jQuery操作动态生成的内容的方法
May 28 Javascript
jQuery中的一些常见方法小结(推荐)
Jun 13 Javascript
详解webpack es6 to es5支持配置
May 04 Javascript
js自定义瀑布流布局插件
May 16 Javascript
详解Angular5 服务端渲染实战
Jan 04 Javascript
微信小程序上传多图到服务器并获取返回的路径
May 05 Javascript
vue项目中使用scss的方法步骤
May 16 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
Jul 11 Javascript
vue treeselect获取当前选中项的label实例
Aug 31 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
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
PHP删除数组中的特定元素的代码
2012/06/28 PHP
基于PHP常用函数的用法详解
2013/05/10 PHP
PHP下载生成的csv文件及问题总结
2015/08/06 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
use jscript with List Proxy Server Information
2007/06/11 Javascript
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
NodeJS使用jQuery选择器操作DOM
2015/02/13 NodeJs
JavaScript知识点总结之如何提高性能
2016/01/15 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
2016/06/15 Javascript
js验证真实姓名与身份证号,手机号的简单实例
2016/07/18 Javascript
webpack常用配置项配置文件介绍
2016/11/07 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
jQuery实现鼠标移入移出事件切换功能示例
2018/09/06 jQuery
重置Redux的状态数据的方法实现
2019/11/18 Javascript
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
解决pytorch GPU 计算过程中出现内存耗尽的问题
2019/08/19 Python
pytorch自定义二值化网络层方式
2020/01/07 Python
python GUI库图形界面开发之PyQt5时间控件QTimer详细使用方法与实例
2020/02/26 Python
django模板获取list中指定索引的值方式
2020/05/14 Python
python使用numpy中的size()函数实例用法详解
2021/01/29 Python
CSS3制作缩略图的详细过程
2016/07/08 HTML / CSS
html5 学习简单的拾色器
2010/09/03 HTML / CSS
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
canvas离屏技术与放大镜实现代码示例
2018/08/31 HTML / CSS
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
舞会礼服和舞会鞋:PromGirl
2019/04/22 全球购物
美国饼干礼物和美食甜点购买网站:Cheryl’s
2020/05/28 全球购物
简述你对Statement,PreparedStatement,CallableStatement的理解
2013/03/25 面试题
烹饪自我鉴定
2014/03/01 职场文书
会议欢迎标语
2014/06/30 职场文书
校车安全责任书
2014/08/25 职场文书
2014年物流工作总结
2014/11/25 职场文书
《梅花魂》教学反思
2016/02/18 职场文书
超越Nginx的Web服务器caddy优雅用法
2022/06/21 Servers