问题描述
目前,这在CSS中是不可能的,除非您要选择一个子元素或同级元素(这很重要,并在此处的其他答案中进行了描述)。
对于所有其他情况,您将需要JavaScript。jQuery和Angular等框架可以相对轻松地解决此问题。
[编辑]
使用新的CSS(4)选择器:has(),您将能够定位父元素/类,从而在不久的将来使仅CSS解决方案成为可能!
解决方法
当仅使用css将鼠标悬停在另一个类的元素上时,是否可以修改一个类的css?
就像是:
.item:hover .wrapper { /*some css*/ }
只有“包装器”不在“项目”内部,而是在其他地方。
我真的不想在简单的事情上使用javascript,但是如果必须的话,我该怎么做?这是我失败的尝试:
document.getElementsByClassName('item')[0].onmouseover="document.getElementsByClassName('wrapper')[0].style.background="url('some url')";";
每个班级只有一个要素。不知道为什么他们在制作模板时不使用ID,但这就是事实,我无法更改。
[编辑]
这是一个菜单。每个菜单元素都有一个不同的类。当您将鼠标悬停在元素上时,会在右侧弹出一个子菜单。这就像一个覆盖层,当我使用“检查元素”工具时,可以看到子菜单处于活动状态时整个网站html都发生了变化(这意味着子菜单什么也没有)。我称之为“包装器”的类具有控制子菜单背景的css。我确实看不到这两个类之间的联系。