![]() |
VOOZH | about |
任何支持style 特性的元素在 ,在其DOM 節點 對象中都有一個 style 屬性與之對應。 這個style 對象是 CSSStyleDeclaration類型的實例,包含著html style特性的所有樣式信息。但不包含 外部樣式或者 內嵌樣式層疊而來的樣式。
在style特性中,提定的任何css屬性,都將表現為這個style 對象的屬性。對於使用短劃線的的屬性名,必須轉化為駝峰大小寫形式,多數情況下都可以這樣轉換。
也有例外, float 是javascript 關鍵字,不能直接轉換,在ie中 轉換為 styleFloat,在其它瀏覽器中,轉換為 cssFloat.
1. dom2 來style對象定義了一些屬性與方法
2. 計算樣式: 「DOM2 級樣式」增強了document.defaultView,提供了 getComputedStyle方法。
這個方法接受兩個參數:要取得計算樣式的元素和一個偽元素字符串(例如":after")。
如果不需要偽元素信息,第二個參數可以是null。getComputedStyle方法返回一個CSSStyleDeclaration 對象(與style 屬性的類型相同),其中包含當前元素的所有計算的樣式。 (IE 中 沒有 getComputedStyle方法,但是在IE中,每個有style屬性的元素 都有一個 currentStyle 屬性, 它是CSSStyleDeclaration 類型的實例)
邊框屬性可能會也可能不會返回樣式表中實際的border 規則(Opera 會返回,但其他瀏覽器不會)。
存在這個差別的原因是不同瀏覽器解釋綜合(rollup)屬性(如border)的方式不同,
因為設置這種屬性實際上會涉及很多其他屬性。在設置border 時, 實際上是設置了四個邊的邊框寬度、顏色、樣式屬性( border-left-width 、border-top-color 、border-bottom-style , 等等)。
因此, 即使computedStyle.border 不會在所有瀏覽器中都返回值,但computedStyle.borderLeftWidth 會返回值。