• 技术文章 >web前端 >前端问答

    js怎么替换css样式

    藏色散人藏色散人2021-07-22 11:32:13原创75

    js替换css样式的方法:1、使用obj.className来修改样式表的类名;2、使用obj.style.cssText来修改嵌入式的css;3、使用obj.className来修改样式表的类名;4、更改外联的css文件。

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

    js怎么替换css样式?

    javascript 动态修改css样式方法汇总-四种方法

    为了达到某种特殊的效果我们需要用Javascript动态的去更改某一个标签的Css属性,如何动态修改css样式呢?面对这个问题,小编带领大家来解决javascript动态修改css样式,小伙伴们都快来学习吧

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

    1、使用obj.className来修改样式表的类名。
    2、使用obj.style.cssText来修改嵌入式的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

    <p>
     <input id="btnB" type="button" name="btnLogin" value="登录" class="style1" />
     <p 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()" />
     </p>
    </p>

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

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

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

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

    方法二、使用obj.style.cssText来修改嵌入式的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怎么替换css样式的详细内容,更多请关注php中文网其它相关文章!

    声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
    专题推荐:js css
    上一篇:css怎么设置标签属性 下一篇:css怎么实现文字横排
    第16期线上培训班

    相关文章推荐

    • 使用JS或CSS如何实现瀑布流布局,几种方案介绍• JS实现点击目录名变换颜色的效果实例• 深入了解Nodejs中的buffer缓存区• jsp调用javascript方法是什么• 聊聊Node.js中的网络与流

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网