查找非活动的CSS属性

时间:2008-12-24 16:23:22

标签: javascript css dom

是否可以通过Javascript确定CSS文件中的样式?

我正在尝试检测将应用于某种状态的元素的CSS属性,在这种情况下为:hover,但没有当前在该元素上处于活动状态的属性。我曾想过克隆元素,将克隆作为兄弟display: none附加并以这种方式查询属性,但我不知道如何通过Javascript强制:hover样式。有什么想法吗?

4 个答案:

答案 0 :(得分:3)

我相信你对styleSheets documentdocument.styleSheets的属性cssRules数组感兴趣。这个数组索引当前页面引用的所有样式表并允许你遍历每个工作表中的所有样式规则。用于访问css规则的W3C阵列(Firefox,Opera,Safari)是rules,而Microsoft的数组是。以下代码段取自www.quirksmode.orgvar theRules = new Array(); if (document.styleSheets[1].cssRules) theRules = document.styleSheets1.cssRules else if (document.styleSheets[1].rules) theRules = document.styleSheets1.rules

theRules

现在{{1}}包含文档第二个样式表的规则。有关从JavaScript访问CSS规则的详细信息,请参阅quirksmode的referencecompatibility tables

答案 1 :(得分:0)

悬停样式由浏览器应用,取决于鼠标移动。我不认为你可以通过JS强制它。但你为什么要这样?只需定义另一个css类,并通过JS中的className属性分配它。

答案 2 :(得分:0)

要通过JS确定样式,可以像这样使用className,例如:

  

item.onmouseover = gohover;

     

item.onmouseout = nohover;

     

function gohover(){this.className = gClass;}

...

答案 3 :(得分:0)

如果我正确理解你的问题,那么你正在寻找的是一个用于CSS(伪)类的XPath。除了使用Ajax获取CSS文件并使用regex进行搜索之外,我不知道从CSS文件中检索样式信息的任何方法。