成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

getComputedStyle方法的那些事

Baoyuan / 437人閱讀

摘要:返回的是一個(gè)樣式聲明對(duì)象,只讀。方法返回一個(gè)最初值對(duì)象或值列表對(duì)象,這取決于屬性值的類型。而且,雖然中,對(duì)象支持方法,但總是返回因此,目前來講,方法可以先不聞不問。本文轉(zhuǎn)載之張鑫旭的博客

一、getComputedStyle是?
getComputedStyle是一個(gè)可以獲取當(dāng)前元素所有最終使用的CSS屬性值。返回的是一個(gè)CSS樣式聲明對(duì)象([object CSSStyleDeclaration]),只讀。

getComputedStyle() gives the final used values of all the CSS properties of an element.

語法如下:

var style = window.getComputedStyle("元素", "偽類");
例如:

var dom = document.getElementById("test"),

style = window.getComputedStyle(dom , ":after");

就兩個(gè)參數(shù),大家都懂中文的,沒什么好說的。只是額外提示下:Gecko 2.0 (Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1) 之前,第二個(gè)參數(shù)“偽類”是必需的(如果不是偽類,設(shè)置為null),不過現(xiàn)在嘛,不是必需參數(shù)了。

二、getComputedStyle與style的區(qū)別
我們使用element.style也可以獲取元素的CSS樣式聲明對(duì)象,但是其與getComputedStyle方法還有有一些差異的。

只讀與可寫
正如上面提到的getComputedStyle方法是只讀的,只能獲取樣式,不能設(shè)置;而element.style能讀能寫,能屈能伸。
獲取的對(duì)象范圍
getComputedStyle方法獲取的是最終應(yīng)用在元素上的所有CSS屬性對(duì)象(即使沒有CSS代碼,也會(huì)把默認(rèn)的祖宗八代都顯示出來);而element.style只能獲取元素style屬性中的CSS樣式。因此對(duì)于一個(gè)光禿禿的元素

,getComputedStyle方法返回對(duì)象中l(wèi)ength屬性值(如果有)就是190+(據(jù)我測試FF:192, IE9:195, Chrome:253, 不同環(huán)境結(jié)果可能有差異), 而element.style就是0。
三、getComputedStyle與defaultView
如果我們查看jQuery源代碼,會(huì)發(fā)現(xiàn),其css()方法實(shí)現(xiàn)不是使用的window.getComputedStyle而是document.defaultView.getComputedStyle,???這是怎么一回事?
jQuery源碼使用document.defaultView.getComputedStyle截圖證明

實(shí)際上,使用defaultView基本上是沒有必要的,getComputedStyle本身就存在window對(duì)象之中。根據(jù)DennisHall的說法,使用defaultView可能一是人們不太樂意在window上專門寫個(gè)東西,二是讓API在Java中也可用(這我不懂,忘指點(diǎn)~~)。

不過有個(gè)特殊情況,在FireFox3.6上不使用defaultView方法就搞不定的,就是訪問框架(frame)的樣式.

四、getComputedStyle兼容性
對(duì)于桌面設(shè)備:

 Chrome    Firefox (Gecko)    Internet Explorer    Opera    Safari

基本支持 支持 支持 9 支持 支持
偽類元素支持 支持 支持 不支持 不支持 支持
對(duì)于手機(jī)設(shè)備:

 Android    Firefox Mobile (Gecko)    IE Mobile    Opera Mobile    Safari Mobile

基本支持 支持 支持 WP7 Mango 支持 支持
偽元素支持 ? ? 不支持 ? ?
上面打問號(hào)的表示沒有測試,是否兼容不知。如果您方便測試,歡迎將測試結(jié)果告知,這里將及時(shí)更新,并附上您的姓名,以謝您做的貢獻(xiàn)。

我們先把注意力放在桌面設(shè)備上,可以看到,getComputedStyle方法IE6~8是不支持的,得,背了半天的媳婦,發(fā)現(xiàn)是孫悟空變的——郁悶了。不急,IE自有自己的一套東西。

五、getComputedStyle與currentStyle
currentStyle是IE瀏覽器自娛自樂的一個(gè)屬性,其與element.style可以說是近親,至少在使用形式上類似,element.currentStyle,差別在于element.currentStyle返回的是元素當(dāng)前應(yīng)用的最終CSS屬性值(包括外鏈CSS文件,頁面中嵌入的

    <