>>>>> js-獲取元素的樣式

內(nèi)置函數(shù)getComputedStyle()

在JS中,我們經(jīng)常會對DOM元素對象進(jìn)行樣式的操作,那么我們又該如何進(jìn)行讀、取呢?首先,我們可以通過js內(nèi)置的函數(shù)getComputedStyle()來獲取到計(jì)算后元素的樣式的一個對象,通過樣式屬性取到我們想要的屬性值

var oDiv = document.getElementsByTagName('div')[0];
var oStyle=getComputedStyle(oDiv)//這是一個對象
var oWidth=oStyle.width//獲取到元素寬的值

*注:getComputedStyle()得到的樣式對象,只能讀,不能寫
但是,getComputedStyle()只適用于標(biāo)準(zhǔn)下的瀏覽器,對于IE9版本以下的IE瀏覽器是不支持的,那么,在IE中我們又該如何來獲取元素的樣式呢?同樣,IE雖然有自己的一套規(guī)則,但還是會為我們對元素進(jìn)行操作提供規(guī)則的,我們可以使用currentStyle來獲取ie下元素樣式

var oDiv = document.getElementById('div');//在IE中通過className獲取元素是不行的
var oWidth=oDiv.currentStyle.width.//在IE中打開,獲取到元素寬的值

然而currentStyle又不能在其他瀏覽器中使用,所以,我們?yōu)榱朔奖闱夷芙鉀Q這一兼容問題,可以將這兩種方法編寫成一個getStyle()函數(shù),這樣,在不同的瀏覽器打開也就不會出現(xiàn)問題了

var oDiv = document.getElementById('div');
function getStyle(obj, attr){
    //兼容性的時候, 判斷瀏覽器是否支持這個方法或?qū)傩裕?可以直接判斷
    if( obj.currentStyle ){
        return obj.currentStyle[attr];
    }
    else{
        var style = getComputedStyle(obj);
        return style[attr];
    }
}
console.log ( getStyle(oDiv,width) )
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 元素樣式有幾種形式,其中: 外部樣式:HTML 中通過 標(biāo)簽引入的 CSS 文件樣式。 內(nèi)部樣式:寫在 HTM...
    Primers閱讀 1,226評論 0 0
  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,168評論 1 92
  • 普通白紙貌似沒有彩鉛紙畫的線條那么明顯,而且沒有修正液,桑心( ̄へ ̄)
    雪醬閱讀 302評論 0 0
  • 文/顧惟意 網(wǎng)友在微博上發(fā)起毒雞湯接力大賽,說實(shí)話,我本人就是雞湯的忠實(shí)擁護(hù)者,注意!是雞湯,不分有毒還是無毒!生...
    顧惟意閱讀 3,876評論 0 1
  • 昨晚小區(qū)里發(fā)生的那一幕,經(jīng)過了一個晚上的洗禮,依舊讓我有點(diǎn)驚魂未定。 以前別人總說:活在當(dāng)下,因?yàn)槲覀冇肋h(yuǎn)不知道明...
    芙蓉出水閱讀 595評論 2 1

友情鏈接更多精彩內(nèi)容