JS中currentStyle和getComputedStyle

在js中常常會獲取元素的css樣式,方法有不少種,此次只介紹currentStyle和getComputedStylecss

  1.obj.style這個方法只能獲取在HTML中寫的行間樣式,內聯樣式不能獲取,更別說外聯樣式了。瀏覽器

  2.IE中使用的是obj.currentStyle方法,而firefox中使用的是getComputedStyle方法spa

「DOM2級樣式」加強了document.defaultView,提供了getComputedStyle()方法,這個方法接受兩個參數,要取得計算樣式的元素和一個僞元素字符串(例如:":after")。如鍋不須要僞類元素信息,第二個參數能夠設置成false。getComputedStyle()方法能夠返回一個CSSStyleDeclaration對象,其中包含當前元素的全部計算的樣式。firefox

  邊框屬性可能不會返回樣式表中的實際的border規則,是由於不一樣瀏覽器解釋綜合屬性的方式不一樣,由於設置這種屬性實際上會涉及不少其餘的屬性,getComputedStyle.border不會在全部瀏覽器中都有返回值,可是getComputedStyle.borderLeftWidth則會有返回值。有些返回值會不一樣,firefox和safari會將全部顏色裝換成rgb格式,其餘不明。code

  IE不支持這個屬性,不過有個相似的屬性爲currentStyle屬性,這個爲屬性,爲style的屬性,是CSSStyleDeclaration的實例,包含當前元素所有計算後的樣式。IE也不能夠返回綜合屬性的值。對象

  3.getComputedStyle()爲方法,currentStyle爲style屬性。blog

1 function getStyle(obj,name) {
2   if(obj.currentStyle){
3   return obj.currentStyle[name]; 
4  }  
5   else{
6    return getComputedStyle(obj,false)[name]; 
7 }  
8 }    
相關文章
相關標籤/搜索