Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 带悬停的嵌套无序列表_Html_Css - Fatal编程技术网

Html 带悬停的嵌套无序列表

Html 带悬停的嵌套无序列表,html,css,Html,Css,我有这个(简化的)导航: .ctmenu{ 显示:无; 浮动:对; } li:悬停>.ctmenu{ 显示:内联块; } CT菜单 CT菜单 试试这个: .ctmenu{display:none;} li a:hover+.ctmenu.ctmenu:hover{display:inline block;} C菜单1 C菜单2 试试这个: .ctmenu{display:none;} li a:hover+.ctmenu.ctmenu:hover{display

我有这个(简化的)导航:

.ctmenu{
显示:无;
浮动:对;
}
li:悬停>.ctmenu{
显示:内联块;
}
  • CT菜单
    • CT菜单
试试这个:

.ctmenu{display:none;}
li a:hover+.ctmenu.ctmenu:hover{display:inline block;}
  • C菜单1
    • C菜单2
试试这个:

.ctmenu{display:none;}
li a:hover+.ctmenu.ctmenu:hover{display:inline block;}
  • C菜单1
    • C菜单2
试试这个:

.ctmenu{display:none}
li a:鼠标悬停+ctmenu,
.ctmenu:悬停{
显示:内联块;
}
  • 演示1 演示2 演示3 演示4
    • 演示1 演示2 演示3 演示4
试试这个:

.ctmenu{display:none}
li a:鼠标悬停+ctmenu,
.ctmenu:悬停{
显示:内联块;
}
  • 演示1 演示2 演示3 演示4
    • 演示1 演示2 演示3 演示4

如果HTML结构没有改变,您可以使用JavaScript来实现,因为CSS中没有父选择器

使用
mouseover
mouseout
classList
,您可以执行以下操作:

var menu=document.querySelector(“.menu”);
var items=menu.querySelectorAll(“li”);
[]forEach.call(项、函数(项){
项目.添加的EventListener(“鼠标悬停”,功能(e){
e、 停止传播();
this.children[0].classList.add(“活动”);
});
项目.添加的监听器(“鼠标输出”,功能(e){
e、 停止传播();
this.children[0].classList.remove(“活动”);
});
})
.ctmenu{
显示:无;
浮动:对;
}
.主动{
显示:内联块;
}
  • CT菜单
    • CT菜单

如果HTML结构没有改变,您可以使用JavaScript来实现,因为CSS中没有父选择器

使用
mouseover
mouseout
classList
,您可以执行以下操作:

var menu=document.querySelector(“.menu”);
var items=menu.querySelectorAll(“li”);
[]forEach.call(项、函数(项){
项目.添加的EventListener(“鼠标悬停”,功能(e){
e、 停止传播();
this.children[0].classList.add(“活动”);
});
项目.添加的监听器(“鼠标输出”,功能(e){
e、 停止传播();
this.children[0].classList.remove(“活动”);
});
})
.ctmenu{
显示:无;
浮动:对;
}
.主动{
显示:内联块;
}
  • CT菜单
    • CT菜单

您需要在LI标记后添加一个额外的div。请检查下面的示例

.ctmenu{
显示:无;
浮动:对;
}
.ct div:hover>.ctmenu{
显示:内联块;
}
  • CT菜单
    • CT菜单

您需要在LI标记后添加一个额外的div。请检查下面的示例

.ctmenu{
显示:无;
浮动:对;
}
.ct div:hover>.ctmenu{
显示:内联块;
}
  • CT菜单
    • CT菜单

.menu.sub li:hover>.ctmenu这将起作用菜单是动态的,并且比此处显示的级别更高,因此不起作用。另外,您的代码将与“主页”不匹配。@Pete只是好奇:flex如何在这里帮助我?@Pete好的,谢谢:)
.menu.sub li:hover>.ctmenu
这将起作用菜单是动态的,并且比此处显示的级别更高,因此这将不起作用。另外,你的代码将与“主页”不匹配。@Pete只是好奇:flex如何在这里帮助我?@Pete好的,谢谢:)这对不止一个.ctmenu元素在li内不起作用。这对不止一个.ctmenu元素在li内不起作用。这对不止一个.ctmenu元素在li内不起作用。这对不止一个.ctmenu元素在li内不起作用。因为这是一个CSS唯一的解决方案,这将是正确的答案。谢谢。:)因为这是一个CSS唯一的解决方案,这将是正确的答案。谢谢。:)