• 关于hover失效问题(!important)


    在如下代码中,利用JS更改div的高宽后,导致内部a标签hover效果失效:

    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>无标题文档</title>
        <style>
            * {
                margin: 0px;
                padding: 0px;
            }
            #header {
                margin-left: 50px;
                height: 800px;
                width: 95%;
                background-color: cadetblue;
            }
            #tad,#content1,#tstore,#tinter,#tnv,#tgame,#thome,#thouse,#tout,#tlike{
                margin-left: 50px;
                height: 200px;
                width: 87%;
                background-color: yellowgreen;
                position: absolute;
                top: 830px;
                font-size: 20px;
                font-weight: 900;
                padding-left: 100px;
            }
            #content1,#tstore,#tinter,#tnv,#tgame,#thome,#thouse,#tout,#tlike{
                height: 600px;
                background-color: darkgoldenrod;
                top: 1050px;
            }
            #tstore {
                background-color: chartreuse;
                top: 1670px;
            }
            #tinter {
                background-color: dodgerblue;
                top: 2300px;
            }
            #tnv {
                background-color: lightpink;
                top: 2920px;
            }
            #tgame {
                background-color: skyblue;
                top: 3550px;
            }
            #thome {
                background-color: darkgoldenrod;
                top: 4170px;
            }
            #thouse {
                background-color: chocolate;
                top: 4800px;
            }
            #tout {
                background-color: darkkhaki;
                top: 5430px;
            }
            #tlike {
                background-color: firebrick;
                top: 6050px;
            }
            #snav {
                height: 0px;
                width: 0px;
                position: fixed;
                top: 100px;
                transition:width 0.4s, height 0.3s;
                overflow: hidden;
            }
            .nav,.navc {
                display: block;
                background-color: #ff0036;
                height: 40px;
                width: 100%;
                text-align: center;
                padding-top: 15px;
                text-decoration: none;
                color: white;
                margin-bottom: 5px;
                font-size: 13px;
            }
            .navc {
                padding-top: 5px;
                background-color: #626262;
                font-size: 13px;
            }
            a#n1:hover{
                background-color: #64c333 !important;
            }
            a#n2:hover{
                background-color: #ff0036 !important;
            }
            a#n3:hover{
                background-color: #ea5f8d !important;
            }
            a#n4:hover{
                background-color: #0aa6e8 !important;
            }
            a#n5:hover{
                background-color: #64c333 !important;
            }
            a#n6:hover{
                background-color: #f15453 !important;
            }
            a#n7:hover{
                background-color: #0aa6e8 !important;
            }
            a#n8:hover{
                background-color: #ff0036 !important;
            }
        </style>
    </head>
    
    <body>
        <a name="top"></a>
        <div id="header">顶部</div>
        <div id="tad">顶部广告</div>
        <div id="snav">
            <a href="javascript:void(0)" class="nav">导航</a>
            <a href="#tstore" class="navc" id="n1">天猫<br/>超市</a>
            <a href="#tinter" class="navc" id="n2">天猫<br/>国际</a>
            <a href="#tnv" class="navc" id="n3">美丽<br/>人生</a>
            <a href="#tgame" class="navc" id="n4">潮电<br/>酷玩</a>
            <a href="#thome" class="navc" id="n5">居家<br/>生活</a>
            <a href="#thouse" class="navc" id="n6">打造<br/>爱巢</a>
            <a href="#tout" class="navc" id="n7">户外<br/>出行</a>
            <a href="#tlike" class="navc" id="n8">猜你<br/>喜欢</a>
            <a href="#top" class="navc" id="n9">返回<br/>顶部</a>
        </div>
        <div id="content1">第一内容区</div>
        <a name="tstore"></a>
        <div id="tstore">天猫超市</div>
        <a name="tinter"></a>
        <div id="tinter">天猫国际</div>
        <a name="tnv"></a>
        <div id="tnv">美丽人生</div>
        <a name="tgame"></a>
        <div id="tgame">潮电酷玩</div>
        <a name="thome"></a>
        <div id="thome">居家生活</div>
        <a name="thouse"></a>
        <div id="thouse">打造爱巢</div>
        <a name="tout"></a>
        <div id="tout">户外出行</div>
        <a name="tlike"></a>
        <div id="tlike">猜你喜欢</div>
        <script>
            var tstore = document.getElementById("tstore");
            var tinter = document.getElementById("tinter");
            var tnv = document.getElementById("tnv");
            var tgame = document.getElementById("tgame");
            var thome = document.getElementById("thome");
            var thouse = document.getElementById("thouse");
            var tout = document.getElementById("tout");
            var tlike = document.getElementById("tlike");
            var n1 = document.getElementById("n1");
            var tstore_top = tstore.offsetTop-400;//随元素的位置、高度的改变而改变
            var tstore_bottom = tstore.offsetHeight+tstore.offsetTop-400;
            var n2 =  document.getElementById("n2");
            var tinter_top = tinter.offsetTop-400;
            var tinter_bottom = tinter.offsetHeight+tinter.offsetTop-400;
            var n3 = document.getElementById("n3");
            var tnv_top = tnv.offsetTop-400;
            var tnv_bottom = tnv.offsetHeight+tnv.offsetTop-400;
            var n4 = document.getElementById("n4");
            var tgame_top = tgame.offsetTop-400;
            var tgame_bottom = tgame.offsetHeight+tgame.offsetTop-400;
            var n5 = document.getElementById("n5");
            var thome_top = thome.offsetTop-400;
            var thome_bottom = thome.offsetHeight+thome.offsetTop-400;
            var n6 = document.getElementById("n6");
            var thouse_top = thouse.offsetTop-400;
            var thouse_bottom = thouse.offsetHeight+thouse.offsetTop-400;
            var n7 = document.getElementById("n7");
            var tout_top = tout.offsetTop-400;
            var tout_bottom = tout.offsetHeight+tout.offsetTop-400;
            var n8 = document.getElementById("n8");
            var tlike_top = tlike.offsetTop-400;
            var tlike_bottom = tlike.offsetHeight+tlike.offsetTop-400;
            var snav = document.getElementById("snav");
            var snavshow = document.getElementById("content1").offsetTop+200;
            window.onscroll=function(){
                var h = window.scrollY;
                if(h>=tstore_top&h<=tstore_bottom){
                    n1 .style.backgroundColor="#64c333";        
                }else{
                    n1.style.backgroundColor="#626262";    
                }
                if(h>=tinter_top&h<=tinter_bottom){
                    n2.style.backgroundColor="#ff0036";
                }else{
                    n2.style.backgroundColor="#626262";    
                }
                if(h>=tnv_top&h<=tnv_bottom){
                    n3.style.backgroundColor="#ea5f8d";
                }else{
                    n3.style.backgroundColor="#626262";    
                }
                if(h>=tgame_top&h<=tgame_bottom){
                    n4.style.backgroundColor="#0aa6e8";
                }else{
                    n4.style.backgroundColor="#626262";    
                }
                if(h>=thome_top&h<=thome_bottom){
                    n5.style.backgroundColor="#64c333";
                }else{
                    n5.style.backgroundColor="#626262";    
                }
                if(h>=thouse_top&h<=thouse_bottom){
                    n6.style.backgroundColor="#f15453";
                }else{
                    n6.style.backgroundColor="#626262";    
                }
                if(h>=tout_top&h<=tout_bottom){
                    n7.style.backgroundColor="#0aa6e8";
                }else{
                    n7.style.backgroundColor="#626262";    
                }
                if(h>=tlike_top&h<=tlike_bottom){
                    n8.style.backgroundColor="#ff0036";
                }else{
                    n8.style.backgroundColor="#626262";    
                }
                //下面的这部分代码就是导致hover失效的元凶
                if(h<=snavshow){
                    snav.style.width = "0px";
                    snav.style.height = "0px";
                }
                if(h>=snavshow){
                    snav.style.width = "50px";/*如果只改变width或height,可以实现生长效果 注:css的transition也要同时改变*/
                    snav.style.height = "510px";
                }
            }    
        </script>
    </body>
    </html>
            

    解决方法:

    给a标签hover内的代码添加!important,使其拥有最高权限!

  • 相关阅读:
    不同操作系统的宏定义区分
    WINDOWS下VS编译opencv并加载自定义模块
    基于模板匹配的马赛克检验
    [转]C++模板详解
    [Linux命令]Unix/Linux信号量的使用
    [C/C++基础]读写文件
    [Linux命令]查看Linux系统相关命令
    【Linux命令】查找命令
    【QT相关】文件、目录基础操作
    【MFC相关】图片显示
  • 原文地址:https://www.cnblogs.com/whwjava/p/8858696.html
Copyright © 2020-2023  润新知