2010-04-10 22 views
5

En Firefox, Opera e IE puedo conseguirlos a través de:¿Cómo obtengo todas las propiedades CSS compatibles en WebKit?

>> for (k in document.body.style) console.log(k) 
-> opacity 
    background 
    height 
    textAlign 
    . 
    ... long list ... 
    . 
    pointerEvents

En WebKit el resultado es bastante diferente:

>> for (k in document.body.style) console.log(k) 
-> cssText 
    length 
    parentRule 
    getPropertyValue 
    getPropertyCSSValue 
    removeProperty 
    getPropertyPriority 
    setProperty 
    item 
    getPropertyShorthand 
    isPropertyImplicit

Actualización: última WebKit does enumerate over CSS properties in HTMLElement.style misma manera todo el sobre los navegadores lo hacen.

Respuesta

6

La respuesta es

>> document.defaultView.getComputedStyle(document.body, '') 
-> CSSStyleDeclaration 
    0: "background-attachment" 
    1: "background-clip" 
    2: "background-color" 
    3: "background-image" 
    4: "background-origin" 
    5: "background-position" 
    6: "background-repeat" 
    7: "background-size" 
    8: "border-bottom-color" 
    9: "border-bottom-left-radius" 
    ...

Gracias a Anton Byrna para su solution.


Un problema sigue siendo: getComputedStyle() no vuelve atajos como background y border.

+0

Iterar 'document.body.style' proporciona las propiedades de estilo de Javascript. 'document.defaultView.getComputedStyle (document.body, '')' solo tiene las propiedades de CSS. p.ej. 'backgroundAttachment' vs.' background-attachment'. –

+0

cualquier forma de obtener todos sus posibles toques de valores como 'heredar', porcentaje, texto abajo; para cada uno de ellos. incluso si usas js. –

1

No estoy seguro del acceso de Javascript, pero puede buscar todas las propiedades admitidas (incluso las de propiedad) aquí: CSS property names.

+4

Enlace para nombres de propiedades de CSS cambiado a http://trac.webkit.org/browser/trunk/Source/WebCore/css/CSSPropertyNames.in –

+0

@Ghodmode Gracias, he reparado mi respuesta. – fuxia

Cuestiones relacionadas