我正尝试用CSS实现一个多级的下拉导航菜单,但有一个小部分我似乎无法正常工作。
应该发生的情况是:
1)当鼠标悬停在菜单项上时,应使用不同的图像突出显示该菜单项(这很好用)。2)当鼠标悬停在子菜单项上时,父菜单项应突出显示。
Point2可以很好地工作,直到我在父菜单项上有一个类.bottom (这个类用于图像的细微差别)。如果父菜单项具有.bottom类,则不会发生高亮显示。
可以在此处查看演示:http://jsfiddle.net/cZFtW/2/
演示显示,当鼠标悬停在Menu 1> Sub Menu 3> Sub Sub Menu X上时,Sub Menu 3高亮显示。但是,将鼠标悬停在菜单2>子菜单3>子菜单X上时,不会高亮显示。
有人能看到我错过了什么吗?顺便说一句,这里没有不使用Javascript的真正理由,如果可能的话,我只是更喜欢用CSS来处理(只需要支持IE7+)。
发布于 2011-10-31 03:53:29
TL;DR;版本:this fiddle显示了答案。
我明白你说的了。我非常确定,你需要回答的样式,除了底部的那一个,对所有人都有效,纯粹是偶然出现的。(我必须说,这是一个很好的选择)。我几乎可以肯定这一点,因为您的代码和文件名都缺乏任何形式的一致性。有重复的代码,有多余的代码,还有缺失的图像。
因此,我重写了您的标记和样式表,并如上所述地解决了这个问题。
现在,它是如何工作的呢?
诀窍是将背景图像附加到列表项中的元素。在本例中,我选择了锚元素,因为这是最有可能的。第一步是在悬停锚点时改变背景图像,这是基本的。
第二步是将鼠标悬停在子菜单上时再次更改背景。在这一点上,锚元素不再悬停,但是列表项被悬停。因此,您仍然可以更改锚点元素的背景。
注意:在我的解决方案中,与您所希望的有一点不同:当您悬停箭头时,如果列表项已经更改而不是直到光标悬停在子菜单上,则会显示背景。如果你想防止这种情况,那么你必须为每个子菜单添加额外的元素,就像你自己做的那样。但我觉得这也很不错。
https://stackoverflow.com/questions/7942542
复制相似问题