CSSStyleDeclaration: getPropertyValue() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

CSSStyleDeclaration.getPropertyValue() 方法介面返回一個字串,其中包含指定 CSS 屬性的值。

語法

js
getPropertyValue(property)

引數

property(屬性)

一個字串,表示要檢查的屬性名稱(使用連字元命名法)。

返回值

一個包含屬性值的字串。如果未設定,則返回空字串。

屬性值是動態計算的,而不是在宣告中最初指定的。序列化過程如下:

  • 如果 property 是一個簡寫屬性,則獲取它對應的所有長格式屬性。請注意,原始樣式表中指定的簡寫屬性在解析時已經被展開。如果這些長格式屬性中至少有一個未宣告,或者它們的 !important 狀態不同,則結果為空字串。否則,將返回一個擴充套件為相同長格式屬性值列表的屬性值,該簡寫值將省略儘可能多的元件,並根據正式定義中的規範順序重新排序(如果可能)。如果上述任何語法轉換向後相容性較差,則不執行它們。
  • 否則,屬性將根據其資料型別進行序列化。每種資料型別都有一個規範表示形式;例如,<color> 值始終使用 rgb(R, G, B)rgba(R, G, B, A)

本質上,屬性值被規範化,以確保具有相同渲染效果的兩個屬性值即使宣告不同也能相等。

示例

以下 JavaScript 程式碼查詢 CSS 選擇器規則中 margin 屬性的值

js
const declaration = document.styleSheets[0].cssRules[0].style;
const value = declaration.getPropertyValue("margin"); // "1px 2px"

返回的字串可能與元素樣式規範中指定的值不同。例如,這種樣式

css
p#blueish {
  color: hsl(250 90 50);
}
js
const declaration = document.styleSheets[0].cssRules[0].style;
const value = declaration.getPropertyValue("color");

將設定一個值 rgb(51, 13, 242);。這在按字串比較樣式時很重要。

規範

規範
CSS 物件模型 (CSSOM)
# dom-cssstyledeclaration-getpropertyvalue

瀏覽器相容性