CSS - 将鼠标悬停在 li 元素上时执行转换(下拉菜单)

Posted

技术标签:

【中文标题】CSS - 将鼠标悬停在 li 元素上时执行转换(下拉菜单)【英文标题】:CSS - perform transition when hover over li element (dropdown menu) 【发布时间】:2013-07-30 14:57:45 【问题描述】:

我正在制作这样的主页:http://jsbin.com/umaguc/1/,我目前正在处理下拉菜单。现在我想要的效果是:http://www.script-tutorials.com/demos/249/index.html;我有一个 div id="lavalamp",它有宽度、高度和背景颜色(看起来像一个矩形);当我 悬停 #nav ul li 元素之一(如主页、离线游戏、在线游戏、电子竞技、音乐...)时,我希望移动此 #lavalamp div 并更改其宽度,以便看起来就像我上面提到的效果。 这是我的代码的想法:

#nav li:nth-of-type(1):hover ~ #lavalamp 
    left: 39px;


#nav li:nth-of-type(2):hover ~ #lavalamp 
    left:110px;
    width:110px;

但遗憾的是,它只是行不通。当我将鼠标悬停在 #nav ul li 元素上时,没有任何变化!希望你们能帮我解决这个问题.. 非常感谢!

【问题讨论】:

能把你用的html贴出来吗? 对不起^^我刚刚更新了我在jsbin链接中使用的html和css。 检查script-tutorials.com/pure-css3-lavalamp-menu,就像 raddevon 说的那样,您的 lavalamp div 似乎不在应有的位置。 好的,我修好了,一切正常。非常感谢! 【参考方案1】:

您似乎使用了general sibling selector 来选择#lavalamp,但该元素从未作为li 元素的同级元素出现。

不幸的是,我不相信 CSS 有办法让您爬回 DOM 以从 lis 访问您的 #lavalamp。您可以使用 jQuery,或者您可以考虑重组标记的方法,使元素可以通过纯 CSS 访问。

【讨论】:

以上是关于CSS - 将鼠标悬停在 li 元素上时执行转换(下拉菜单)的主要内容,如果未能解决你的问题,请参考以下文章

将鼠标悬停在 li 上时如何更改所有字体颜色

通过 CSS 将鼠标悬停在父元素上时显示 :after

当我将鼠标悬停在div上时,我希望它根据所悬停的第n个孩子的数量来更改其旁边的元素

将鼠标悬停在特定 <li> 上时如何更改 <ul> 背景图像? [复制]

jQuery:将鼠标悬停在其上时保持切换的子元素打开

如何将鼠标悬停在子元素上而不悬停在 CSS 中的父元素上?