悬停时子菜单不可见

Posted

技术标签:

【中文标题】悬停时子菜单不可见【英文标题】:Submenu is not getting visible on hover 【发布时间】:2015-10-18 23:36:15 【问题描述】:

请参阅我的代码和演示Here。我不太习惯使用 css,但它很简单,我看到许多演示几乎使用相同的代码。但我无法发现导致问题的差异

我需要在UserForm 下打开一个子菜单,但它在悬停时不可见(使用 css)

【问题讨论】:

您正在使用 CSS 规则 #main_nav ul ul top: 100% 。这是将元素放置在屏幕底部。 是的,这实际上是答案......谢谢 【参考方案1】:

像这样从#main_nav ul ul 中删除“top”和“left”:

#main_nav ul ul 
    position: absolute;
    visibility: hidden;

这是因为“位置:绝对”的工作方式。在您的情况下,父“li”具有“位置:静态”(默认),在这种情况下,“位置:绝对”使子 ul 在整个文档中绝对放置。如果您只是删除“可见性:隐藏”然后将其放置在页面底部,您可以看到这一点。另一种解决方案是将“位置:相对”设置为父li

【讨论】:

就是这样。对,你能解释一下为什么只有当我删除它们时它才能工作。定位有什么问题? 这是因为“位置:绝对”的工作方式。在您的情况下,父“li”具有“位置:静态”(默认),在这种情况下,“位置:绝对”使子 ul 在整个文档中绝对放置。如果您只是删除“可见性:隐藏”然后将其放置在页面底部,您可以看到这一点。另一种解决方案是将“位置:相对”设置为父 li。

以上是关于悬停时子菜单不可见的主要内容,如果未能解决你的问题,请参考以下文章

CSS垂直下拉菜单,当悬停到其他菜单时子菜单显示

鼠标移出时子导航下拉菜单停用

CSS - 悬停可见另一个子菜单

当只有一个子菜单被悬停时,防止多个子菜单同时可见(由于转换延迟)

jQuery 下拉问题(无法保持子菜单可见)

单击后关闭悬停子菜单而不刷新页面