Html CSS子选择器不工作-受影响类型的所有Decentant

Html CSS子选择器不工作-受影响类型的所有Decentant,html,css,drop-down-menu,Html,Css,Drop Down Menu,我正在构建一个包含嵌套列表的菜单。我使用了一个子选择器(#menu novo li:hover>ul)来只显示/隐藏即时事件,但它仍然显示所有事件。有什么帮助吗 #菜单novo容器{ 字体系列:tahoma、Arial、helvetica、Serif; 边框:1px纯红; } #诺沃菜单{ 边框:3倍纯绿; } .菜单项{ 边框:3倍纯白; 光标:指针; } .menu novo link{ 边框:3倍纯黄色; } .菜单novo子菜单{ 边框:3倍纯红; 显示:无; } #菜单novo li

我正在构建一个包含嵌套列表的菜单。我使用了一个子选择器(
#menu novo li:hover>ul
)来只显示/隐藏即时事件,但它仍然显示所有事件。有什么帮助吗

#菜单novo容器{
字体系列:tahoma、Arial、helvetica、Serif;
边框:1px纯红;
}
#诺沃菜单{
边框:3倍纯绿;
}
.菜单项{
边框:3倍纯白;
光标:指针;
}
.menu novo link{
边框:3倍纯黄色;
}
.菜单novo子菜单{
边框:3倍纯红;
显示:无;
}
#菜单novo li:悬停>ul{
显示:块;
}
.menu novo link{
显示:块;
}

  • 1
    • 1.4

如果我理解了您的问题,您首先需要为第二级
ul
设置
display:none
,然后在第二级
li
悬停时设置
display:block

#menu-novo li ul li ul {
   display: none;
}

#menu-novo li ul li:hover ul{
   display: block;
}
#菜单novo容器{
字体系列:tahoma、Arial、helvetica、Serif;
边框:1px纯红;
}
#诺沃菜单{
边框:3倍纯绿;
}
.菜单项{
边框:3倍纯白;
光标:指针;
}
.menu novo link{
边框:3倍纯黄色;
}
.菜单novo子菜单{
边框:3倍纯红;
显示:无;
}
#菜单novo li:悬停>ul{
显示:块;
}
.menu novo link{
显示:块;
}
#菜单novo li ul{
显示:无;
}
#菜单novo li ul li:悬停ul{
显示:块;
}

  • 1
    • 1.4

您为嵌套的
li
ul
添加了相同的类,以便为其添加不同的类

ul{
列表样式:无;
左侧填充:0;
}
#菜单novo容器{
字体系列:tahoma、Arial、helvetica、Serif;
边框:1px纯红;
}
#诺沃菜单{
边框:3倍纯绿;
}
.菜单项{
边框:3倍纯白;
光标:指针;
}
.menu novo link{
边框:3倍纯黄色;
}
.菜单novo子菜单{
边框:3倍纯红;
}
.menu-novo-submenu.child1,
#菜单novo>li:hover>ul.child1 li.child2{
显示:无;
}
#菜单novo>li:hover>ul.child1,
#菜单novo>li:hover>ul.child1 li:hover.child2{
显示:块;
}
.menu novo link{
显示:块;
}

  • 1
    • 1.4

它显示所有ul,因为您没有为子ul隐藏(display:none;)。 因此,添加以下缺少的css,应该可以:

#menu-novo li ul {
    display:none;
}

#menu-novo li:hover > ul {
    display: block;
}
#菜单novo容器{
字体系列:tahoma、Arial、helvetica、Serif;
边框:1px纯红;
}
#诺沃菜单{
边框:3倍纯绿;
}
.菜单项{
边框:3倍纯白;
光标:指针;
}
.menu novo link{
边框:3倍纯黄色;
}
#菜单novo li>ul{
边框:3倍纯红;
显示:无;
}
#菜单novo li:悬停>ul{
显示:块;
}
.menu novo link{
显示:块;

}
请在问题中包含您的代码。请不要链接到第三方网站,因为这些链接可能会随着时间的推移而消失。只需在你的答案中发布一个代码片段。抱歉@ScottMarcus实际上这个问题中有第三方链接,所以我自己更新了那里的代码。顺便说一句,你的建议真的很有道理+谢谢你的回答。但我能让它在任何级别的筑巢中工作吗?对于您的代码,如果我是对的,只有第一级和第二级可以工作。是的,它可以用于任何级别的嵌套,但是如果您有多个级别的嵌套,最好为它们指定一个类名。@RajanBenipuri您的代码适用于第一级和第二级,而不是第三级。所以,它对任何级别都不起作用。我不可能有一份4层的菜单来完成这项工作。这是否意味着我必须通过类或
li-ul手动瞄准每个子菜单。。。li ul
方法?如果是这样的话,你在课堂上的建议是有道理的。谢谢你的回答。但我正在寻找一种解决方案,它可以与任何级别的嵌套一起工作。这可能吗?很抱歉,我做了。我已经更新了你的css,它可以工作了。您的css无法工作,因为它使用类名“.menu novo submenu”和li:hover>ul使用display:block将覆盖“.menu novo submenu”属性来显示所有ul。因此,最好严格遵循亲子规则。希望能有帮助。