javascript 动态修改css样式方法

来源:互联网 发布:如何参加淘宝客 编辑:程序博客网 时间:2024/04/30 12:26

CSS

?
1
2
3
4
5
6
7
.style1{margin:10pxauto ;background-color:#9999FF;display:block;color:White;border:1pxsolid white;padding:10px25px;font-size:18px; }
 
.style1:hover{background-color:#66B3FF;cursor:pointer;}
 
.style2{margin:10pxauto ;background-color:gray;display:block;color:black;border:1pxsolid white;padding:10px25px;font-size:18px; }
 
.style2:hover{background-color:black;color:White;cursor:pointer}

HTML

?
1
2
3
4
5
6
7
8
9
<div>
 <inputid="btnB"type="button"name="btnLogin"value="登录"class="style1"/>
 <divid="tool">
  <inputtype="button"value="【obj.style.className】更改样式"onclick="changeBackgroundColor()"/>
  <inputtype="button"value="【obj.style.cssText】更改样式"onclick="changeFontSize()"/>
  <inputtype="button"value="【obj.className】更改样式"onclick="addRadius()"/>
  <inputtype="button"value="更改外联css样式"onclick="recover()"/>
 </div>
</div>

方法一、使用obj.className来修改样式表的类名

从下面的代码可以看出ob.style.cssTest是如何来btnB的样式的。

?
1
2
3
4
5
functionchangeStyle1() {
  varobj = document.getElementById("btnB");
  obj.style.backgroundColor="black";
 
}

该段代码修改btB的文字的颜色,在浏览器中打开调试工具,可以发现btB标签中多了一个属性【style="内联式>外联式。而btB的hove伪类的background-color样式写在内联式中,所以嵌入式的background-color覆盖了伪类中,这就使得鼠标放入btB上感觉不到背景颜色的变化。

方法二、使用obj.style.cssTest来修改嵌入式的css

直接上JavaScript代码:

?
1
2
3
4
5
functionchangeStyle2() {
   varobj = document.getElementById("btnB");
   obj.style.cssText = "background-color:black; display:block;color:White;
 
}

该段代码和【一】中的效果是一样的,缺陷也是一样。

方法三、使用obj.className来修改样式表的类名

使用代码来修改btB引用样式的类名,如下段代码:

?
1
2
3
4
5
functionchangeStyle3() {
  varobj = 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文件,代码如下:

?
1
2
3
4
5
6
<link href="css1.css"rel="stylesheet"type="text/css"id="css"/>
 
functionchangeStyle4() {
   varobj = document.getElementById("css");
   obj.setAttribute("href","css2.css");
 }

这样也能方便的更改btB的样式,觉得这种方式是好用的,是实现整体页面换肤的最佳方案。


0 0
原创粉丝点击