JS - 獲取CSS屬性值 getComputedStyle()與currentStyle()、style()方法
在對網頁進行除錯的過程中,經常會用到js來獲取元素的CSS樣式,
1. obj.style:
這個方法JS只能獲取寫在html標籤中的寫在style屬性中的值(style=”…”),而無法獲取定義在<style type="text/css">裡面的屬性。
2.Window.getComputedStyle()
- 返回一個物件,該物件在應用活動樣式表並解析這些值可能包含的任何基本計算後報告元素的所有CSS屬性的值。
- 私有的CSS屬性值可以通過物件提供的API或通過簡單地使用CSS屬性名稱進行索引來訪問。
- getComputedStyle獲取的是計算機(瀏覽器)計算後的樣式,但是不相容IE6、7、8
語法:
let style = window.getComputedStyle(element, [pseudoElt]);
element: 用於獲取計算樣式的Element。
pseudoElt 可選:指定一個要匹配的偽元素的字串。必須對普通元素省略(或null
)。
返回的style
是一個實時的 CSSStyleDeclaration
物件,當元素的樣式更改時,它會自動更新本身。
(CSSStyleDeclaration
介面表示一個物件,它是一個 CSS 宣告塊,CSS 屬性鍵值對的集合。它暴露了樣式資訊和各種與樣式相關的方法和屬性。)
3.Element.currentStyle
Element.currentStyle
是一個與Window.getComputedStyle()方法功能相同的屬性。這個屬性實現在舊版本的IE瀏覽器中.
屬性判斷法、版本檢測法來解決瀏覽器間的相容性問題
function getStyle(obj, arr) {
if (obj.currentStyle) {
return obj.currentStyle[arr]; //針對ie
} else {
return document.defaultView.getComputedStyle(obj, null)[arr];
}
}
or:
function getStyle(obj, attr) {
return obj.currentStyle ? obj.currentStyle[attr] : getComputedStyle(obj, null)[attr];
}
注意:
- 如果用以上的方法獲取某個元素的複合樣式,例如background,那麼就不要用上面那種方式獲取,在不同瀏覽器間有相容性問題。用上面的方法獲得單一樣式,而不要用來獲取複合樣式。
- 使用以上方法,注意不要多按空格
- 使用以上方法,不要獲取未設定後的樣式,因為瀏覽器間不相容
- 在火狐4.0之前,有個bug,如果getComputedStyle後面不跟引數,會出現問題,所以有些人寫成getComputedStyle(obj, false),那個false就是為了解決這個bug。這裡的bug也可以寫成0,或者其他任何引數都可以。不過目前火狐的瀏覽器都比較高,因此這個問題已經不是很常見了。
相關文章
- css屬性與js中style物件的屬性對應表CSSJS物件
- 根據屬性字串獲取屬性值字串
- JavaScript 獲取 checked 屬性值JavaScript
- C#反射設定屬性值和獲取屬性值C#反射
- 強制修改CSS的屬性styleCSS
- js獲取css屬性知多少?客官來擼就知曉!JSCSS
- js_獲取與設定css變數的值JSCSS變數
- CSS outline-style 屬性: CSS3 outline-CSSS3
- DedeCMS讓channelartlist支援currentstyle屬性
- 設定和獲取元素固有屬性值
- js_獲取css的@media screen的值JSCSS
- lambda方法引用獲取欄位屬性
- JavaScript style 屬性JavaScript
- 獲取json串裡的某個屬性值JSON
- 獲取類屬性值,當前類,父類
- C#獲取某個物件的屬性值C#物件
- PHP獲取檔案基本屬性的方法PHP
- selenium用XPATH直接獲取屬性值 需要使用.get_attribute(“屬性名”)
- JavaScript獲取css的值JavaScriptCSS
- 獲取影像的屬性
- 獲取List集合物件中某一列屬性值物件
- opencv 獲取影像的屬性OpenCV
- javascript 將變數值作為物件屬性 獲取物件對應的值JavaScript變數物件
- jQuery - 獲取內容和屬性jQuery
- JS獲取照片拍攝的角度屬性,用於旋轉控制JS
- JS常用屬性方法大全(一)JS
- Python的tkinter獲取元件屬性和設定元件屬性Python元件
- js獲取 陣列最大/小值JS陣列
- css box-sizing屬性值詳解(MDN)CSS
- 數值常用的屬性和方法
- C# 獲取修改了哪些屬性C#
- Power Automate 獲取使用者屬性
- CSS 屬性篇(一):relative與absoluteCSS
- iOS 開發:『Runtime』詳解(四)獲取類詳細屬性、方法iOS
- jQuery捕獲-獲取DOM元素內容和屬性jQuery
- js獲取iframe和父級之間元素,方法、屬,獲取iframe的高度自適應iframe高度JS
- js 改變 控制元件的屬性值JS控制元件
- CSS 屬性篇(七):Display屬性CSS