2009-10-16 25 views
0

該網站是http://greenvillenext.com/site(注意:請忽略瘋狂的加載時間和一切,我已經知道)。IE7不會從導航中刪除活動狀態,直到懸停

以下是發生了什麼:點擊主導航欄中的一個項目(頂部的五個鏈接)爲該項目提供了一個「活動」類別,當您單擊不同的項目時,它會從該項目中刪除活動類別並添加它到了新的一個。很明顯,這個活動類用於設置導航鏈接的樣式,讓你知道你在哪裏。

但是,在IE7中,點擊導航中的其他鏈接不會將活動樣式從前一個活動鏈接中移除,直到將鼠標懸停在其上方,這似乎將其重置。

我在這裏不知所措。我已經嘗試過任何可以找到的偷窺(例如min-width:0),我已經爲非活動鏈接設置了「非活動」類,並且以不同的方式進行了設置等等。使其重置,直到您將其懸停在IE7中。

任何想法?

回答

0

原來,事實上,設計師已經啓用了所有版本的IE而不是IE6的DD_belatedPNG,這是罪魁禍首。

0

你如何定義懸停?最簡單(也是最可靠的方法)就是使用jQuery。

$('.myNav').hover(function(){ 

$('.myNav').removeAttr //remove whatever styling hover causes 
$(this).css //set the background/do hover animation 

}); 

您需要一種方法來標記當前選定的選項卡並忽略它;你總是可以在元素上使用某些屬性來標記這些元素。我看到你的導航元素都是不同的類,我會爲所有人添加其他課程以便輕鬆分組。

對於所有的jQuery naysayers:他已經在使用jQuery-UI,所以添加jQuery插件是一個模擬問題。這將比任何註冊的解決方案更具可讀性並且可能更高效。

+0

我只在我的CSS中使用:hover僞類。有什麼理由我不知道爲什麼懸停狀態應該在JS中完成? – 2009-10-16 21:12:20

+0

如果您想要懸停任何不是錨點的東西,則需要使用javascript來兼容IE。這也徹底消除了跨瀏覽器CSS渲染問題的可能性,這些問題很多。 – 2009-10-16 21:37:18

+0

不要認爲這是造成問題的懸停。似乎IE不尊重「活躍」類通過JS被移除的事實,並且直到你將它懸停在它上面(重置它)纔會意識到它。 – 2009-10-16 22:03:25