2011-06-20 48 views
1

我有一個位於div元素內的圖像,當鼠標移過它時,此div元素更改其某些樣式屬性,使用CSS:hover僞類。這適用於所有瀏覽器。但div元素還有另一個類:active,當點擊時它應該改變它的背景顏色。div元素中的圖像不處理CSS活動僞類

這裏是事情開始中斷的時候。在IE9(我已經安裝的版本)中,當我點擊圖片時,div的背景顏色不會改變。只有當我點擊div上的其他地方時,它纔會起作用,顏色會發生變化。在Firefox中,即使點擊圖片,在div元素內點擊的位置也無關緊要,背景顏色也會發生變化。這就是我希望IE的行爲方式,所以當usem點擊div時,無論它在哪裏,主動效果都會被觸發。

有沒有解決方法,或者我可以使用它來使它適用於IE?

+2

需要看到實際的代碼的下方。也許在http://jsfiddle.net上演示一個演示。 – BoltClock

+0

描述非常清晰...下面是一個[jsfiddle](http://jsfiddle.net/Pcd9g/),它重現了這個問題。問題也在IE8中。 – Kraz

+0

我以爲:活躍的psuedo-class只能和錨標籤一起使用 – Kasturi

回答

1

一點與上jsFiddle的CSS玩弄左右後,我沒有找到任何CSS的方法來解決這個問題:IE只是不想考慮IMGDIV的一部分。

我建議你在javascript中解決這個問題。使用onMouseDown。

僞:

(div or img).onMouseDown(div.addClass:"active") 
(div or img).onMouseUp(div.removeClass : "active"). 

我建議使用JS框架,使其更容易。見jquery mouseupmousedown

+0

謝謝Kraz,我會試試。但我期待着不好的事情:)用另一種技術解決一種技術的問題似乎對我來說有點可怕。就像用鞋子在牆上釘一個釘子:) Pitta IE9和所有超級高科技產品仍然具有舊版本的quircks。但是,無論如何感謝哥們:) –

+1

看看這[jsFiddle](http://jsfiddle.net/Pcd9g/3/)。當你點擊圖像(如果沒有出現,請點擊運行),在IE中,它變成粉紅色。在FF中,它變成了藍綠色。當你點擊Firefox中的圖像時,div __和圖像變爲活動狀態。在IE中,__only__圖像變得活躍。既然你不能在CSS中選擇父節點,你必須使用JavaScript(或者改變你的設計,或者放棄IE支持)。 – Kraz

0

這個問題有一個棘手的工作。

您可以把另一個DIV上的圖像作爲覆蓋的頂部,使該分區對點擊和鼠標動作作出反應,並使用jQuery效果添加到div圖像