2009-05-03 34 views
1

在我的CSS,我有:如何將懸停類添加到元素?

li.sort:hover {color: #F00;} 

我所有的LIsort類的功能元件的情況下正確的DOM已準備就緒。

如果我創建一個新的LI元素(使用mootools的el.addClass(classname))我可以設置的基類,但無法弄清楚如何將hover類添加到它。

任何想法?

+0

MyClass:hover不適用於新元素,似乎所有瀏覽器都不會在新插入的DOM元素上考慮這種僞類。我必須通過爲`mouseover`和`mouseleave`事件添加一個新的事件處理程序並向該元素添加/刪除一個常規的MyHover類來解決這個問題。不理想,但有效。 – dengel 2009-05-06 19:27:24

回答

7

懸停僞類可以在樣式表中根據您指定的類名提前定義。如:

li.classname:hover {color:#F000;} 

因此,它的定義方式與樣式表相同。您只需提前計劃,知道您將在具有特定類的JS生成的LI標記上定義類名,併爲其定義樣式,儘管在使用JavaScript創建它們之前列表項不存在。

3

懸停類是在添加非懸停類時自動添加的。例如。如果你有

.MyClass 
{ 
... 
} 

.MyClass:hover 
{ 
... 
} 

剛纔添加的MyClass,和MyClass:hover會工作。

+0

類和id名稱不能以大寫字母開頭。 – Wolfr 2009-05-03 14:31:37

2

:hover不是類,而是一個僞選擇器,它將選擇鼠標當前懸停在其上的任何元素。如果創建一個li元素,並將sort類添加到該元素,那麼無論何時將鼠標移到元素上,如果瀏覽器正常工作,則應激活li.sort:hover規則。

0

並非所有瀏覽器都會接受所有元素上的懸停僞類。你應該考慮使用JavaScript來達到這個效果。例如,jQuery使這非常簡單。

0

並非所有瀏覽器都會接受所有元素上的懸停僞類。你應該考慮使用JavaScript來達到這個效果。例如,jQuery使這非常簡單。

更具體地說,IE6只會提取:錨點(a)元素上的懸停樣式。

相關問題