2013-05-01 116 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; } 
相關問題