在網頁進行調試的過程中,常常會用到js來獲取元素的CSS樣式,方法有很多很多,現在僅把我常用的方法總結如下:
1. obj.style:這個方法只能JS只能取得寫在html標籤中的寫在style屬性中的值(style=”…”),而無法取得定義在
JS取得CSS屬性值
html>
2. IE中使用的是obj.currentStyle方法,而FF是用的是getComputedStyle 方法
「DOM2級樣式」增強了document. defaultView,提供了getComputedStyle()方法。這個方法接受兩個參數:要取得計算樣式的元素和一個偽元素字串(例如「:after」)。如果不需要偽元素訊息,第二個參數可以是null。 getComputerStyle()方法傳回一個CSSStyleDeclaration對象,其中包含目前元素的所有計算的樣式。以下面的HTML頁為例:
計算元素樣式
}
}
<script> <BR>var myDiv = document.getElementById("myDiv"); <BR>var computedStyle = document.defaultView.getComputedStyle(myDiv, null); <BR>alert(computedStyle.backgroundColor); //"red" <BR>alert(computedStyle.width); //"red" <BR>alert(computedStyle.width); //"red" <BR>alert(computedStyle.width); //"100pert; computedStyle.height); //"200px" </script>
alert(computedStyle.border); //在某些瀏覽器中是「1px solid black」
複製程式碼 程式碼如下:
var myDiv = document.getElementById("myDiv");
var computedStyle = myDiv.currentStyle; alert(computedStyle.backgroundColor); //"red"
alert(computedStyle.width); //"100px"
alert(computedStyle.height); //"200px"
alert(computedStyle. ); //undefined
與DOM版本的方式一樣,IE也沒有回傳border樣式,因為這是一個綜合屬性。
3. 我自己在寫測試case過程中寫的一個簡單的函數(適用於Chrome):
程式碼如下:
function getCSS(div){
return document.defaultView.getComputedStyle (div, null);
//return div.currentStyle;//沒用過,IE }