【发布时间】:2012-05-16 00:49:15
【问题描述】:
当只使用 css 将鼠标悬停在另一个类的元素上时,有没有办法修改一个类的 css ?
类似:
.item:hover .wrapper { /*some css*/ }
只有 'wrapper' 不在 'item' 内,它在其他地方。
我真的不想在这么简单的事情上使用 javascript,但如果我必须这样做,我该怎么做?这是我失败的尝试:
document.getElementsByClassName('item')[0].onmouseover="document.getElementsByClassName('wrapper')[0].style.background="url('some url')";";
每个类只有一个元素。不知道为什么他们在制作模板时不使用 ID,但就是这样,我无法更改。
[编辑]
这是一个菜单。每个菜单元素都有一个不同的类。当您将鼠标悬停在元素上时,右侧会弹出一个子菜单。这就像一个叠加层,当我使用“检查元素”工具时,我可以看到当子菜单处于活动状态时整个网站的 html 都发生了变化(这意味着除了子菜单什么都没有)。我称之为“包装器”的类具有控制子菜单背景的 css。我真的看不出这两个类之间有什么联系。
【问题讨论】:
-
你不想使用
getElementsByClassName,因为不是每个浏览器都支持它。 -
没有。 CSS 不允许非嵌套元素相互影响。为此,您必须使用 Javascript。
-
“其他地方”:到底在哪里?如果
.item是以前的兄弟姐妹,你可以这样做.item:hover ~ .wrapper { ... } -
最好的办法是向我们展示您的菜单 HTML,以便我们直接确定您是否可以选择它。
标签: javascript css class hover