【问题标题】:Menu won't change when hovered in submenu悬停在子菜单中时菜单不会改变
【发布时间】:2013-07-16 08:41:12
【问题描述】:

所以基本上我想让我的菜单在子菜单悬停时保持悬停状态, 我已经尝试过这样的

但它仍然不会像我想要的那样改变,我哪里出错了? 这是我的sn-p

#topmenu li li:hover a:hover{
  color: #000;
  text-decoration: none;
  background-color: #fff;
  text-shadow: 0 0 1px #000; 
}

问候,

【问题讨论】:

  • 请同时显示您的 HTML 结构
  • 显示所有菜单 CSS,因为可能有其他样式会覆盖您的样式。
  • 这里有完整的 css & html jsfiddle.net/FTHFQ

标签: css hover mouse


【解决方案1】:

不知道为什么要用left: -999em; 而不是display: none; 隐藏子菜单。

这是一个更新的 jsFiddle:http://jsfiddle.net/JmkaM/1/,它使用 display: none;display: block; 来显示子菜单。

您要做的是在用户悬停在顶级li 时显示子菜单。所以你会这样做li:hover ul。为您的特定 CSS 修改以下内容:

#topmenu li ul {
     /* left: -999em; remove */
     display: none;  /* add */
}

/* add the following */
#topmenu li:hover ul {
     display: block;
}

如果您出于某种原因确实需要使用left,请执行以下操作:

#topmenu li:hover ul {
     left: 0;
}

它会将您的子菜单从-999em 推到左侧。虽然它可能不会完全放在您想要的位置。

更新 1

这将是我最后一次帮助你。您需要了解良好的反馈会帮助其他人帮助您。我了解您是新来的,但在回答“不符合我的意愿”的回答时对我们或您没有帮助

我只是根据您在 cmets 中链接到的 jsFiddle 来猜测您想要什么。

这是新的 jsFiddle:http://jsfiddle.net/JmkaM/2/

您将在下面看到我之前和之后所做的更改。为了简洁起见,我只突出显示了我更改的属性。

之前

#topmenu ul { /* ... */ }
#topmenu li ul {
     padding-top: 0px;
     padding-bottom: 0px;
}
#topmenu li li:first-child {
     margin-top: 14px;
     border: 0;
}

之后

/* added child selector '>' so only top level navigation
   items have a background of red */
#topmenu > ul { }
/* set padding on all sides to 0 */
#topmenu li ul {
     padding: 0;
}
/* removed whole rule - #topmenu li li:first-child */

更新 2

试试这个:

#topmenu > ul > li:hover {
    background-color: white;
}
#topmenu > ul > li:hover > a {
    color: black;
}

【讨论】:

  • 所以在我的代码中,子菜单悬停在顶部的菜单仍然具有白色背景
  • 我的 jsFiddle 显示子菜单。您在上面链接到的那个也可以。您希望您的子菜单在可见时看起来像什么?您需要与人更清楚,否则他们将停止尝试帮助您。简单地说,“没有按我的意愿工作”不会让你到任何地方。请给我们一些细节!
  • 我的意思是,子菜单的出现就像我写的 jsfiddle.net/FTHFQ 但是当我悬停在子菜单(子类)中时,菜单(父类)正在改变颜色,就像它悬停时一样(先是红色,然后是白色背景)对不起我的英语
  • 所以你希望父菜单项的背景在悬停子菜单时不改变?
  • 是的,当我将鼠标悬停在父菜单时,它仍然处于状态,在我的代码中,我将子菜单悬停在父菜单背景为红色,但我想成为白色(就像它是父菜单一样)菜单悬停)
【解决方案2】:

看到这个小提琴: http://jsfiddle.net/mSNqT/46/

这会很有帮助。

【讨论】:

  • 我用#topmenu a:hover li li a:hover{} 尝试过,但仍然无法按我的意愿工作
  • nav ul li:hover ul li a:hover {border:0 none;填充:10px;背景:#ff0000; } 试试这个
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-05
  • 1970-01-01
  • 2014-11-08
  • 1970-01-01
  • 2015-01-20
  • 2019-05-17
  • 1970-01-01
相关资源
最近更新 更多