是否可以通過Javascript確定CSS文件中的樣式?查找非活動CSS屬性
我試圖檢測將應用於某個狀態下的元素的CSS屬性,在這種情況下爲:hover
,但沒有當前在元素上處於活動狀態的屬性。我曾考慮克隆元素,將該克隆追加爲display: none
,並以這種方式查詢屬性,但我不知道如何通過Javascript強制使用:hover
樣式。有任何想法嗎?
是否可以通過Javascript確定CSS文件中的樣式?查找非活動CSS屬性
我試圖檢測將應用於某個狀態下的元素的CSS屬性,在這種情況下爲:hover
,但沒有當前在元素上處於活動狀態的屬性。我曾考慮克隆元素,將該克隆追加爲display: none
,並以這種方式查詢屬性,但我不知道如何通過Javascript強制使用:hover
樣式。有任何想法嗎?
懸停樣式由瀏覽器應用,取決於鼠標移動。我不認爲你可以通過JS強制它。但你爲什麼想要?只需定義另一個CSS類,並通過JS中的className屬性進行分配。
要確定風格throught JS,你可以使用的className這樣做e.g:
item.onmouseover = gohover;
item.onmouseout = nohover;
功能gohover(){this.className = gClass;}
...
如果我正確理解你的問題,好像你正在尋找的是一個XPath對於CSS(僞)類。除了使用Ajax獲取CSS文件和使用正則表達式搜索外,我還沒有意識到從CSS文件中檢索樣式信息的方法。
我相信你有興趣的styleSheets
陣列是document
(document.styleSheets
)這個數組的索引被當前頁面引用的樣式表的屬性,並允許您遍歷所有的樣式規則中的每個片。用於訪問css規則的W3C陣列(Firefox,Opera,Safari)爲cssRules
,而微軟的陣列爲rules
。下面的代碼片段從www.quirksmode.org採取:
var theRules = new Array();
if (document.styleSheets[1].cssRules)
theRules = document.styleSheets 1 .cssRules
else if (document.styleSheets[1].rules)
theRules = document.styleSheets 1 .rules
現在theRules
包含了文檔的第二個樣式表的規則。請參閱quirksmode的reference和compatibility tables以獲取有關從JavaScript訪問CSS規則的更多信息。
備選:一:懸停,.myAnchorHoverClass {/ *我的CSS * /} 然後就通過JavaScript – 2008-12-24 17:05:01
感謝的Martijn適用myAnchorHoverClass,那是一個很好的建議。我想保留:非JS降級的懸停,以及一些WebKit轉換。 – roryf 2008-12-24 17:50:51