用javascript getComputedStyle擷取和設定style的原理

來源:互聯網
上載者:User

有興趣的朋友搜尋"百度 popup"就好了,已經有人給出了注釋,強大。
最有意思的是用javascript擷取和設定style

DOM標準引入了覆蓋樣式表的概念,當我們用document.getElementById("id").style.backgroundColor 擷取樣式時 擷取的只是id中style屬性中設定的背景色,如果id中的style屬性中沒有設定background-color那麼就會返回空,也就是說如果id用class屬性引用了一個外部樣式表,在這個外部樣式表中設定的背景色,那麼不好意思document.getElementById("id").style.backgroundColor 這種寫法不好使,如果要擷取外部樣式表中的設定,需要用到window對象的getComputedStyle()方法,代碼這樣寫window.getComputedStyle(id,null).backgroundColor
但是相容問題又來了,這麼寫在firefox中好使,但在IE中不好使
兩者相容的方式寫成
window.getComputedStyle?window.getComputedStyle(id,null).backgroundColor:id.currentStyle["backgroundColor"];
如果是擷取背景色,這種方法在firefox和IE中的傳回值還是不一樣的,IE中是返回"#ffff99"樣子的,而firefox中返回"rgb(238, 44, 34) "
值得注意的是:window.getComputedStyle(id,null)這種方式不能設定樣式,只能擷取,要設定還得寫成類似這樣id.style.background="#EE2C21";

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.