2012-04-28 56 views
6

我想通过JavaScript访问所有的CSS属性(不仅仅是一个特定的选择器或元素,而是所有的)。获取所有CSS样式属性?

我想遍历.style集合的所有属性。

我该怎么做?

+0

由*所有*,你的意思是所有元素的所有CSS? – Joseph 2012-04-28 05:46:22

+0

你是什么意思?您必须先选取一个元素,然后才能访问其属性。 – Sampson 2012-04-28 05:46:26

+0

通过所有的手段所有CSS样式,如风格[“a”]风格[“z”]和style.length =总css属性,我们可以应用于任何元素。 – gaurav 2012-04-28 05:49:17

回答

6

您可以使用CSSStyleDeclaration object。 CSSStyleDeclaration对象可通过JavaScript属性提供CSS样式属性。这些JavaScript属性的名称与CSS属性名称非常接近。

该对象具有两个附加属性:

cssText
一套风格属性和属性值的的文本表示。文本格式与CSS样式表一样,减去元素选择器和围绕属性和值的大括号。

长度
此CSSStyleDeclaration中包含的属性/值对的数量。 CSSStyleDeclaration对象也是一个类似数组的对象,其元素是声明的CSS样式属性的名称。

https://developer.mozilla.org/en/DOM/CSSStyleDeclaration
https://developer.mozilla.org/en/DOM/CSS

1

你可以看到如何从javascript访问样式表:http://www.quirksmode.org/dom/changess.html

IE与其他浏览器的不同之处在于,让所有跨浏览器的东西正确无误是一件痛苦的事情。

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 

通常情况下,你可以预先定义几个CSS规则,然后从不同的对象,以更改应用的样式添加或删除类。

+0

感谢回答,我想我无法清楚地解释我的要求,好的,让我再试一次,在css3中有多少财产,我不知道确切的数量,但我想访问它从javascript的所有内容 – gaurav 2012-04-28 06:11:30

1
//to loop through the available css properties using jQuery 
$(document).ready(function() { 
    availableProps = getComputedStyle(document.body); 
    $.each(availableProps, function(propCount, cssProp) { 
     console.log('CSS Property : ' + cssProp); 
    }); 
}); 
+0

这是真正的*访问*?另外,OP要求迭代这些属性。你可以将这些信息添加到你的答案? – dakab 2016-06-05 07:42:56

+0

ahh谢谢我没有注意到他需要访问。更新了我的答案。 – 2016-06-19 01:03:07