/*
* 通過元素.style.樣式隻能擷取到内聯樣式的值,就是style寫在元素裡面的值,不能擷取嵌入式和外聯樣式的值
* 是以如果要擷取除内聯樣式後的值,就不能通過這個擷取
* alert(box1.style.height)
* 還有其他的形式,比如擷取元素目前顯示的樣式,就是不管是外聯還是嵌入式還是内聯,誰顯示就是擷取誰的樣式
* 文法:元素.currentStyle.樣式名
* 他可以讀取目前元素正在顯示的樣式
* alert(box1.currentStyle.width);
* 這個隻有IE支援,其他浏覽器都不支援。
* 在其他浏覽器中可以使用getComputedStyle()這個方法來擷取目前元素的樣式
* 這個是window的方法,可以直接使用
* 文法:
* 需要兩個參數:
* 第一個:要擷取樣式的元素
* 第二個:可以傳遞一個僞元素,一般都傳null。
* 該方法會傳回一個對象,對象中封裝了目前元素對應的樣式
* 可以通過對象.樣式名來讀取樣式
* 如果擷取的樣式沒有設定,則會擷取到真實的值,而不是預設值
* 比如沒有設定width,他不會獲得auto,而是一個實際上的值。
* 而IE的話,不設定會預設auto
* 但是該方法不支援IE8及以下浏覽器
* 如果為了相容兩個,那麼就定義一個函數來相容兩個都可以,就是類似弄一個判斷包含在裡面
*
* 通過currentStyle和getComputedStyle()讀取到的樣式都是隻讀的
* 不能修改,如果要修改必須通過style屬性。
*/
function getStyle(obj,name){
//擷取屬性可以通過.,也可以通過中括号,這裡.不适合,中括号才适合
//正常浏覽器的方式,具有getComputedStyle方法
getComputedStyle(obj,null)[name]
//要加window,否則是個變量,到時候會報錯
if(window.getComputedStyle){
return getComputedStyle(obj,null)[name]
}else{
//IE浏覽器,具有currentStyle方法
return obj.currentStyle[name]
}
//第二種方式可以通過三元運算符
window.getComputedStyle?getComputedStyle(obj,null)[name]:obj.currentStyle[name]
}