js如何改变css样式
    在很多情况下,都需要对网页上元素的样式进行动态的修改。在JavaScript中提供几种方式动态的修改样式,下面将介绍方法的使用、效果、以及缺陷。
    1、使用obj.className来修改样式表的类名。
    2、使用obj.style.cssTest来修改嵌入式的css。
    3、使用obj.className来修改样式表的类名。
    4、使用更改外联的css文件,从而改变元素的css
    下面是一段html代码和css代码用来解释上面方法的区别的

    方法一、使用obj.className来修改样式表的类名
    从下面的代码可以看出ob.style.cssTest是如何来btnB的样式的。

    1. function changeStyle1() {
    2. var obj = document.getElementById("btnB");
    3. obj.style.backgroundColor= "black";
    4. }

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

    方法二、使用obj.style.cssTest来修改嵌入式的css(推荐使用)
    直接上JavaScript代码:

    1. function changeStyle2() {
    2. var obj = document.getElementById("btnB");
    3. obj.style.cssText = "background-color:black; display:block;color:White;
    4. }

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

    方法三、使用obj.className来修改样式表的类名(推荐)
    使用代码来修改btB引用样式的类名,如下段代码:

    1. function changeStyle3() {
    2. var obj = document.getElementById("btnB");
    3. //obj.className = "style2";
    4. obj.setAttribute("class", "style2");
    5. }

    通过更改btB的css的类名的方式来更改样式,更改样式类名有两种方式。
    1、obj.className = “style2”;
    2、obj.setAttribute(“class”, “style2”);
    都是一样的效果。用这种方式来修改css比上面的效果要好很多。

    方法四、使用更改外联的css文件,从而改变元素的css
    通过更改外联的css文件引用从而来更改btB的样式,操作很简单。代码如下:
    首先得引用外联的css文件,代码如下:

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

    这样也能方便的更改btB的样式。