首页 > 社区问答列表 >为什么悬停(hover)不起作用,样式不显示?

  为什么悬停(hover)不起作用,样式不显示?

我正在设计导航条,但是我的鼠标悬停不起作用。当我悬停在“man”项目在我的下拉菜单,它的悬停样式,不工作,不显示样式在检查。有什么问题吗?这是我的HTML代码:


/* Navbar container */
 body {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
 }

 li {
     text-decoration: none;
 }

 .nav-container {
     direction: rtl;
     text-align: right
 }

 .navbar {
     overflow: hidden;
     background-color: #333;
     font-family: Arial;
 }

 /* Links inside the navbar */
 .navbar a {
     float: right;
     font-size: 16px;
     color: white;
     text-align: center;
     padding: 14px 16px;
     text-decoration: none;
 }

 /* The dropdown container */
 .dropdown {
     float: right;
     overflow: hidden;
 }

 /* Dropdown button */
 .dropdown .dropbtn {
     font-size: 16px;
     border: none;
     outline: none;
     color: white;
     padding: 14px 16px;
     background-color: inherit;
     font: inherit;
     /* Important for vertical align on mobile phones */
     margin: 0;
     /* Important for vertical align on mobile phones */
 }


 /* Dropdown content (hidden by default) */
 .dropdown-content {
     display: none;
     position: absolute;
     background-color: #f9f9f9;
     width: 100%;
     left: 0;
     box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
     z-index: 1;
 }

 .dropdown:hover .dropdown-content {
    display: block;
  }

.megamenu-container {
    background-color: aqua;
    width: 100%;
}

.megmenu {
    width: 100%;
}

.megamenu-title {
    width: 20%;
    background-color: blue;
    display: inline-block;
    padding: 5px 15px;
    vertical-align: top;
}

.megamenu-subitems-default {
    width: 70%;
    background-color: blueviolet;
    display: inline-block;
    padding: 15px;
}

.megamenu-item {
    float: unset !important;
    padding: 0 !important;
}

.man:hover .megamenu-subitems-default {
    visibility: hidden;
}

#subitems {
    display: inline-block;
    visibility: hidden;
    background-color: yellowgreen;
    width: 70%;
}

.man:hover #subitems {
    visibility: visible;    
}

.test {
    color: yellow;
}

.man:hover .test {
    color: wheat;
}


  
      
      
      
      
      Document
  


当我悬停在“man”项目在我的下拉菜单,它的悬停样式不工作,不显示样式在Inspect

P粉842215006
P粉842215006

  • P粉226413256
  • P粉226413256   采纳为最佳   2023-08-03 18:28:06 1楼

    在您的CSS文件中,您有这个规则:

    .man:hover #subitems {
     visibility: visible;    
    }
    

    然而,#subitems不是.man的后代。您需要将#subitems放置在与.man相同的层级上,或者作为它的后代。

    这个CSS规则指定了当.hover在具有类.man的祖先之一上悬停时,具有id为#subitems的元素将变为可见;但是,在您的HTML中,.man是一个只有一个子元素.megamenu-item的div。

    为了隐藏默认的子项div,请尝试替换这个选择器:

    .man:hover .megamenu-subitems-default{
        visibility: hidden;
    }
    

    with:

    .megamenu-title:hover ~ .megamenu-subitems-default{
        visibility: hidden;
    }

    对于每个菜单项的子项,我建议您要么为每个子项div提供一个唯一的ID并使用JavaScript控制它们的可见性,要么更改您的布局,使.megamenu-subitems div与li元素处于同一级别,并使用兄弟选择器,或者将它们作为li元素的后代。


    +0 添加回复