【问题标题】:CSS navigation - won't stay open on sub-item menus as cursor rolls off :hoverCSS 导航 - 光标滚落时不会在子项菜单上保持打开状态:hover
【发布时间】:2014-10-13 12:25:38
【问题描述】:

请查看fiddle,您会很快看到问题。

我将:hover 用于我的 CSS 菜单中的子项。当我将鼠标悬停在子项目上时,由于容器的大小减小,我无法再到达“项目三”,并且我的光标位置不再悬停。

你会如何解决这个问题?有纯 CSS 解决方案吗?

子项显示使用.has-children类:

#menu li.has-children:hover ul#sub-menu {
    display: block;
}

【问题讨论】:

  • @Alek 和我的 JSFiddle 是同一个链接,你提到的解决方案到底是什么?
  • 问题是当您将鼠标悬停在它们上方时显示的项目数量与下方的项目数量相同,因此当您将鼠标悬停从这两个新显示的项目上移开时,您就在您的列表定期结束。也许使用 CSS 过渡让用户有时间移动鼠标?
  • 你好 :) 我不是 CSS 专家,但你如何在它的右侧而不是在项目下方显示子项目
  • @Cedie 因为设计不是这样的
  • 快点,除非您知道在另一个字段中永远不会有子菜单,否则我不会推荐您使用的 ID 特定 CSS 样式。有类的东西,甚至只是有一个孩子 ul 的事实就足够了。

标签: html css hover


【解决方案1】:

好吧,这里有一个解决方法:尝试简单地在#main-navigation 元素的底部添加一些填充。 它将提供一些空间,光标仍将触发 :hover 状态。

#main-navigation {padding-bottom: 20px}

那里:http://jsfiddle.net/56cx8zwx/12/

我清理了一些你的代码,一些悬停规则不是必需的。

但好吧,假设你会给你的菜单一些样式(填充到 LI 等),我猜你不需要这个。

【讨论】:

  • 嗨,我确实尝试过填充。问题是菜单有背景颜色,所以它显示为这个填充作为一个大的长菜单:(
  • 你能举一个活生生的例子吗?在这种情况下,我认为您只需要将悬停状态更改为父元素。在我给出的示例中,没有这样的东西,所以请随意复制和粘贴:)
猜你喜欢
  • 1970-01-01
  • 2014-05-11
  • 2011-11-05
  • 2019-09-15
  • 1970-01-01
  • 2011-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多