javascript怎么修改style样式

修改方法:1、使用“元素对象.className”修改样式表的类名;2、使用“元素对象.style.cssTest”修改嵌入式的css样式;3、使用“元素对象.setAttribute()”语句通过更改外联的css文件,从而改变元素的样式。

本教程操作环境:windows7系统、javascript1.8.5版、Dell G3电脑。

在很多情况下,都需要对网页上元素的样式进行动态的修改。在JavaScript中提供几种方式动态的修改样式,下面将介绍方法的使用、效果、以及缺陷。

1、使用obj.className来修改样式表的类名。

2、使用obj.style.cssTest来修改嵌入式的css。

3、使用更改外联的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=更改外联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.setAttribute更改外联的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高级教程

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...