今天寫一個前端頁面,發(fā)現(xiàn)obj.style.height竟然獲取出來的東西為null,或者干脆什么都不顯示,反復(fù)思考,回想,以前我就是這樣獲取的啊,有什么不對???很苦惱啊,在網(wǎng)上試探性的看下有沒有答案,結(jié)果,真的是我錯了,obj.style.height獲取CSS屬性的前提是css屬性必須是行內(nèi)樣式,不能夠是外部引入的,也不能夠是寫在當(dāng)前head中的style標(biāo)簽樣式里。那該怎么解決呢??
DOM標(biāo)準(zhǔn)里有個全局方法getComputedStyle,可以獲取到當(dāng)前對象樣式規(guī)則信息,如:getComputedStyle(obj,null).paddingLeft,就能獲取到對象的左內(nèi)邊距。但是事情還沒完,萬惡的IE不支持此方法,它有自己的一個實現(xiàn)方式,那就是currentStyle,不同于全局方法getComputedStyle,它是作為DOM元素屬性存在的,如:obj.currentStyle.paddingLeft,在IE中就獲取到對象的左內(nèi)邊距了,兼容性的寫法如下:
return getComputedStyle ? getComputedStyle(obj,null).paddingLeft : obj.currentStyle.paddingLeft;順便提一下,getComputedStyle是在window下面的一個全局方法。
好了,解決!!
參考資料:
原文資料
新聞熱點
疑難解答