css 为什么悬停不工作,样式不显示?

lb3vh1jj  于 2023-08-09  发布在  其他
关注(0)|答案(1)|浏览(117)

我在设计导航栏,我的悬停不起作用。当我悬停在下拉菜单中的“man”项上时,其悬停样式不起作用,并且在Inspect中不显示样式。有什么问题吗?下面是我的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;
}

个字符
当我将鼠标悬停在下拉菜单中的“man”项上时,其悬停样式不起作用,并且在Inspect中不显示样式

xpszyzbs

xpszyzbs1#

简短回答

在CSS文件中,你有这样的规则:

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

字符串
但是,#subitems不是.man的后代。您需要#subitems.man或其后代位于同一级别。

更长的答案

此CSS规则指定,当其类为.man的祖先之一悬停在on时,您希望id为#subitems的元素变为可见;但是,在HTML中,.man是一个div,它有一个子.megamenu-item

如何让它工作?

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

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


与:

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


对于菜单项的每个子项,我建议你要么给予每个子项div一个唯一的ID,并用JavaScript控制它们的可见性,要么改变你的布局,比如.megamenu-subitems div将与li元素位于同一级别,并使用sibling combinator,或者使它们成为li元素的后代,如上所述。
祝你好运!

相关问题