在CSShover事件上,我可以更改另一个div的样式吗?

可能重复:
有什么办法可以hover在一个元素上,并产生不同的元素?

当我将鼠标hover在ID为“a”的div或类上时,是否可以获取ID为“b”的div或class的背景颜色?

是的,你可以这样做,但只有#b在HTML中的#a之后。

如果#b紧跟在#a之后: http : //jsfiddle.net/u7tYE/

 #a:hover + #b { background: #ccc } <div id="a">Div A</div> <div id="b">Div B</div> 

这是使用相邻的兄弟组合 ( + )。

如果#a#b之间还有其他元素,你可以使用这个: http : //jsfiddle.net/u7tYE/1/

 #a:hover ~ #b { background: #ccc } <div id="a">Div A</div> <div>random other elements</div> <div>random other elements</div> <div>random other elements</div> <div id="b">Div B</div> 

这是使用一般兄弟组合 ( ~ )。

+~适用于所有现代浏览器和IE7 +

如果#b#a的后代,则可以简单地使用#a:hover #b

备选scheme:您可以使用纯CSS来做到这一点,通过定位第一个元素之前的第二个元素。 第一个div是第一个标记,但位于第二个的右边或下面。 它会像以前的兄弟姐妹一样工作。

这不能纯粹用CSS来完成。 这是一个行为,它会影响页面的样式。

使用jQuery,你可以快速的实现你的问题的行为:

 $(function() { $('#a').hover(function() { $('#b').css('background-color', 'yellow'); }, function() { // on mouseout, reset the background colour $('#b').css('background-color', ''); }); }); 

下面的示例基于jQuery,但是可以使用任何JS工具包甚至普通的旧JS来实现

 $(document).ready(function(){ $("#a").mouseover(function(){ $("#b").css("background-color", "red"); }); }); 

没有jQuery的纯粹解决scheme:

Javascript(头)

 function chbg(color) { document.getElementById('b').style.backgroundColor = color; } 

HTML(正文)

 <div id="a" onmouseover="chbg('red')" onmouseout="chbg('white')">This is element a</div> <div id="b">This is element b</div> 

JSFiddle: http : //jsfiddle.net/YShs2/