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将制定内容复制到剪切板示例代码
Feb 11 Javascript
jQuery窗口、文档、网页各种高度的精确理解
Jul 02 Javascript
javascript实现修改微信分享的标题内容等
Dec 11 Javascript
JavaScript函数详解
Feb 27 Javascript
JS上传图片前实现图片预览效果的方法
Mar 02 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
Jan 31 Javascript
所见即所得的富文本编辑器bootstrap-wysiwyg使用方法详解
May 27 Javascript
bootstrap读书笔记之CSS组件(上)
Oct 17 Javascript
简单实现js进度条加载效果
Mar 25 Javascript
对vue.js中this.$emit的深入理解
Feb 23 Javascript
利用Console来Debug的10个高级技巧汇总
Mar 26 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
Aug 22 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两种去掉数组重复值的方法比较
2014/06/19 PHP
浅谈PHP正则表达式中修饰符/i, /is, /s, /isU
2014/10/21 PHP
thinkPHP分组后模板无法加载问题解决方法
2016/07/12 PHP
php输出控制函数和输出函数生成静态页面
2019/06/27 PHP
Javascript 面向对象 命名空间
2010/05/13 Javascript
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
jquery实现手风琴效果
2015/11/20 Javascript
jQuery easyUI datagrid 增加求和统计行的实现代码
2016/06/01 Javascript
jQuery实现每隔一段时间自动更换样式的方法分析
2018/05/03 jQuery
Angular服务Request异步请求的实例讲解
2018/08/13 Javascript
Vue中的组件及路由使用实例代码详解
2019/05/22 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
Python中for循环详解
2014/01/17 Python
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
如何优雅地处理Django中的favicon.ico图标详解
2018/07/05 Python
Python3.4 splinter(模拟填写表单)使用方法
2018/10/13 Python
解决python xlrd无法读取excel文件的问题
2018/12/25 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
利用python 读写csv文件
2020/09/10 Python
python入门教程之基本算术运算符
2020/11/13 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
NFL墨西哥官方商店:Tienda NFL
2017/11/28 全球购物
进程的查看和调度分别使用什么命令
2013/12/14 面试题
成人教育自我鉴定
2013/11/01 职场文书
自我评价怎么写好呢?
2013/12/05 职场文书
大学生如何写自荐信
2014/01/08 职场文书
九年级政治教学反思
2014/02/06 职场文书
小学校长竞聘演讲稿
2014/05/16 职场文书
服务标语口号
2014/07/01 职场文书
订货会邀请函
2015/01/31 职场文书
MySQL数据库简介与基本操作
2022/05/30 MySQL