論style、getComputedStyle、currentStyle之間的區別和聯繫

今天同事問我一個問題,希望能夠獲取到CSS樣式中背景圖的URL地址,我聽到之後的第一反應就是style來獲取,但是在實踐的過程中遇到了一些問題。
我們在CSS中設置了背景圖片,但是發現並沒有辦法使用JS的style來獲取到。這個時候,我們應該選擇其他的方式。特此,寫一篇文章來記錄一下整個思考和解決的過程。
之前一直在新浪博客上去寫自己的技術博客,但是發現貌似沒有幾個人看,也可能是因爲我更新的太慢了。但是還是感覺自己的博客所託非人,貌似關於技術的博客都是在這個平臺上完成的,所以毅然決然的決定換一個地方來寫自己的技術博客,希望能夠記錄自己的點滴,逐步提升自己。
好了,話不多說,我們直接切入正題。
  1. 元素.style.css樣式,我們可以使用這個方法獲取到元素內聯樣式中的屬性值,但是如果寫的是嵌入式,我們是沒有辦法獲取到的
  2. 我們希望獲取到嵌入式樣式表中的樣式,也就是屬性和屬性值。
    這個時候,我們需要使用getComputedStyle和currentStyle這兩個方法。
  3. getComputedStyle的語法如下:
    let style=window.getComputedStyle(element,[pseudoElt]);
    element表示需要找到的元素,pseudoElt表示指定一個要匹配的僞元素的字符串,必須對普通元素設置null。一般默認寫成false,是爲了兼容低版本的火狐。
    注意:這個方法返回的是一個實時的樣式,每次的更新都會獲取不一樣的。
    let elem = document.getElementById(“elem-container”);
    let theCSSprop = window.getComputedStyle(elem,null).getPropertyValue(“height”);
    let theCSSprop = window.getComputedStyle(elem,null)[“height”];
    在許多在線的演示代碼中, getComputedStyle 是通過 document.defaultView 對象來調用的。 大部分情況下,這是不需要的, 因爲可以直接通過window對象調用。但有一種情況,你必需要使用 defaultView, 那是在firefox3.6上訪問子框架內的樣式 (iframe)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章