denguing 2019-11-10 18:39 采纳率: 0%
浏览 405

简单练习:CSS多个类名,样式为何不见了?

下面是http://www.fgm.cc/learn/lesson1/01.html这个练习的代码实现

html:

<!DOCTYPE html>
<html lang="zh">
    <head>
        <meta charset="utf-8">
        <title>控制div属性</title>
        <link rel="stylesheet" href="div.css">
    </head>
    <body>
        <div id="btn"><input type="button" value="变宽"></input><input type="button" value="变高"></input><input type="button" value="变色"></input><input type="button" value="隐藏"></input><input type="button" value="重置"></input></div>
        <div id="change" class="change4 change3"></div>
        <script src="div.js"></script>
    </body>
</html>

css:

#btn {
    width: 240px;
    margin: 0 auto;
}
.change0 {
    width: 200px;
}
.change1 {
    height: 200px;
}
.change2 {
    background-color: red;
}
.change3 {
    display: none;
}
.change4 {
    width: 100px;
    height: 100px;
    background-color: black;
    margin: 10px auto;
    display: block;
}

javascript:

window.onload = function(){
    var btn=document.getElementById("btn").childNodes;
    var change = document.getElementById("change"); 
    for(var i=0;i<5;i++){
        btn[i].onclick = (function (n){
            return function(){
                change.className = change.className + (" change"+n);
            }
        })(i);
    }
}

我想的思路很简单:就是点击按钮,添加类名,改变样式。在控制台可以看到类名是添加上了,但是样式没有改变。不知是何原因,还请各位朋友指点迷津!谢谢

  • 写回答

1条回答 默认 最新

  • 天际的海浪 2019-11-10 20:41
    关注

    你为一个元素设置多个class名,在css中定义的这些class名的选择符的优先级都相同。
    对于相同优先级的选择符写在下边的样式会覆盖写在上边的样式。
    你.change4写在css代码的最下边,就会优先生效。
    把.change4写在.change0上边即可:

    #btn {
        width: 240px;
        margin: 0 auto;
    }
    .change4 {
        width: 100px;
        height: 100px;
        background-color: black;
        margin: 10px auto;
        display: block;
    }
    .change0 {
        width: 200px;
    }
    .change1 {
        height: 200px;
    }
    .change2 {
        background-color: red;
    }
    .change3 {
        display: none;
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 怎么获取下面的: glove_word2id.json和 glove_numpy.npy 这两个文件
  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥20 java项目连接sqlserver时报ssl相关错误
  • ¥15 一道python难题3
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug