2012-04-28 24 views
6

Deseo obtener acceso a todas las propiedades CSS (no solo para un selector o elemento específico, sino todo) a través de JavaScript.¿Tiene acceso a todas las propiedades de estilo css?

Quiero iterar a través de todas las propiedades de la colección .style.

¿Cómo puedo hacer esto?

+0

por * todos *, que quiere decir todos los CSS de todos los elementos? – Joseph

+0

¿Qué quieres decir? Debes elegir un elemento antes de poder acceder a sus propiedades. – Sampson

+0

por supuesto, todas las propiedades CSS como estilo ["a"] a estilo ["z"] y style.length = propiedades totales css que podemos aplicar a cualquier elemento. – gaurav

Respuesta

6

puede usar CSSStyleDeclaration object. Un objeto CSSStyleDeclaration hace que los atributos de estilo CSS estén disponibles a través de las propiedades de JavaScript. Los nombres de estas propiedades de JavaScript se corresponden estrechamente con los nombres de atributos CSS.

Este objeto tiene dos propiedades adicionales:

CSSText
La representación textual de un conjunto de atributos de estilo y sus valores. El texto está formateado como en una hoja de estilo CSS, menos el selector de elementos y las llaves que rodean los atributos y valores.

longitud
El número de pares atributo/valor contenidas en este CSSStyleDeclaration. Un objeto CSSStyleDeclaration también es un objeto similar a una matriz cuyos elementos son los nombres de los atributos de estilo CSS que se declaran.

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

1

Puede ver cómo acceder a las hojas de estilo desde javascript aquí: http://www.quirksmode.org/dom/changess.html.

Es diferente en IE con respecto a otros navegadores y es un poco doloroso hacer todo lo que se puede hacer con el navegador cruzado.

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 

A menudo, sólo puede predefinir varias reglas CSS y luego agregar o quitar clases de diversos objetos con el fin de cambiar los estilos aplicados.

+0

gracias por ans, creo que no pude explicar claramente mi requisito, vale, permítame intentarlo una vez más, cuántas propiedades hay en css3, no sé el recuento exacto pero quiero acceder a todo desde javascript – gaurav

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

¿Es esto realmente cierto? *acceso*? Además, el OP pidió iterar sobre estas propiedades. ¿Podría agregar esta información a su respuesta? – dakab

+0

ahh gracias, no entendí que necesitaba acceso. Actualizado mi respuesta. –

Cuestiones relacionadas