2013-05-01 87 views
2

这是代码:我怎样才能做到这一点与CSS和/或JavaScript?

HTML:

<img src="..." /> 

// other stuff 

<div id="image"> 
<a href="" > bla bla bla </a> 
<a href="" > ble ble ble </a> 
</div> 

CSS:

#image a:hover{color:green;} 

我想这一点:

当使用者将鼠标移动到图像,然后所有的链接在与ID“图像”的div变成绿色(就像用户把鼠标放在链接上一样)。

如果可能,我宁愿只用CSS来做。

+1

你真的应该使用的,而不是一个id一类,因为技术上你应该只拥有1每个唯一的ID。 – SamHuckaby 2013-05-01 16:44:32

回答

7
img:hover + #image a { 
    color: green; 
    text-decoration: none; 
} 

http://jsfiddle.net/Tzpmd/

+0

这款工作在任何浏览器?谢谢 – xRobot 2013-05-01 16:45:01

+0

是的,这是在IE 8 +和大多数版本的开源浏览器 – Adrift 2013-05-01 16:45:39

+0

支持,但这只适用于图像和链接之间没有无效:(http://jsfiddle.net/QSy9H/4/ – xRobot 2013-05-01 16:48:06

3
img:hover + #image a{color:green;} 

虽然有一些浏览器对于:hover+使用的怪癖,所以你需要做一些测试,看看你支持的浏览器都受到影响。

旧版浏览器不支持+


如果有介于两者之间的元素,你可以使用~代替。

img:hover ~ #image a{color:green;} 
+0

这项工作任何浏览器?谢谢 – xRobot 2013-05-01 16:45:54

+1

不,一些旧的浏览器无法正常工作。当':hover'与'+'结合使用时,在某些浏览器中会出现一些错误,所以您应该测试您支持的浏览器。 – 2013-05-01 16:46:55

+0

但是,只有在图像和链接之间没有不良的情况下才有效:(http://jsfiddle.net/QSy9H/4 – xRobot 2013-05-01 16:48:37

1

@xRobot,你摆弄的问题是,你不引用的#topimg的兄弟,这是table不是tr#image。您引用的元素是表元素的子元素,#topimg元素的侄女(不是同级)。

检查该更新的提琴:http://jsfiddle.net/QSy9H/32/

...并使用此页面上的例子:

img:hover ~ table #image a{ color:green; } 
相关问题