Javascript CSS可见性

时间:2010-05-12 08:59:41

标签: javascript css

似乎javascript只能准备内联css如果我想检查元素是否显示:隐藏得到它:

el.style.display

但是如何检查display:none是否放在外部CSS文件中?

3 个答案:

答案 0 :(得分:2)

您需要使用getComputedStyle(符合标准的浏览器)或currentStyle(IE)访问元素的计算样式。 Google可以使用这些术语作为示例,也可以使用jQuery等框架来为其提供包装。

答案 1 :(得分:1)

这可能是倒退的方式,在这种情况下没有帮助,但无论如何:

如果要查看已加载的CSS文件中的内容,可以使用var sheets = document.styleSheets;获取已加载的样式表,并使用sheets[0];访问第一个样式表 然后,从中获取规则:

var rules = sheets[0].cssRules ? sheets[0].cssRules : sheets[0].rules;

然后循环执行规则以检查它们:

var rule, selector;
for (var idx=0, len=rules.length; idx<len; ++idx) {
  rule = rules[idx];
  selector = rule.selectorText;
  if (!selector) {continue;}
  console.log(selector+' => '+ rule.style.cssText);
}

这或多或少直接来自David Flanagan的伟大着作“Javascript,the Definitive Guide(5th ed。)”

答案 2 :(得分:0)

无论CSS在何处定义,

if(el.style.display=='none')都能正常工作。