getComputedStyle()方法返回一個CSSStyleDeclaration對象,該對象包含元素的所有CSS屬性的值。
計(jì)算出的樣式是在應(yīng)用了來自多個來源的“樣式”之后,實(shí)際用于顯示元素的樣式。
樣式源可以包括:內(nèi)部樣式表,外部樣式表,繼承的樣式和瀏覽器默認(rèn)樣式。
可以通過CSSStyleDeclaration對象提供的方法或使用CSS屬性名稱建立索引來訪問各個CSS屬性值。
window.getComputedStyle(element, pseudoElement)
var heading = document.getElementsByTagName("h1")[0]; var x = window.getComputedStyle(heading, null).getPropertyValue("color");測試看看?/?
表格中的數(shù)字指定了完全支持getComputedStyle()方法的第一個瀏覽器版本:
方法 | ![]() | ![]() | ![]() | ![]() | ![]() |
getComputedStyle() | 11 | 4 | 11.5 | 5 | 9 |
參數(shù) | 描述 |
---|---|
element | 要為其獲取計(jì)算樣式的元素 |
pseudoElement | (可選)一個字符串,指定要匹配的偽元素。對于真實(shí)元素,省略(或?yàn)閚ull)。 |
返回值: | 一個CSSStyleDeclaration對象,包含元素的CSS聲明塊,當(dāng)元素的樣式更改時,該對象會自動更新。 |
---|
在此示例中,我們?yōu)?lt;p>元素設(shè)置樣式,然后使用getComputedStyle()檢索這些樣式,并將其打印到<p>的文本內(nèi)容中:
let para = document.querySelector('p'); let compStyles = window.getComputedStyle(para); para.innerHTML = 'font-size: ' + compStyles.getPropertyValue('font-size'); para.innerHTML += '<br>line-height: ' + compStyles.getPropertyValue('line-height'); para.innerHTML += '<br>padding: ' + compStyles.getPropertyValue('padding');測試看看?/?
從元素獲取所有計(jì)算出的樣式:
let para = document.querySelector('p'); let compStyles = window.getComputedStyle(para); for (let i = 0; i < compStyles.length; i++) { prop = compStyles.item(i); txt += prop + " = " + compStyles.getPropertyValue(prop) + "<br>"; }測試看看?/?
getComputedStyle()可以從偽元素中提取樣式信息(例如:: after,:: before,:firstfirst等):
var div = document.getElementsByTagName("div")[0]; var x = window.getComputedStyle(div, "first-letter").getPropertyValue("font-size");測試看看?/?
CSS教程:CSS教程
CSS教程:CSS偽元素
CSS參考:CSS屬性
JavaScript參考:CSSStyleDeclaration對象
CSSStyleDeclaration:getPropertyValue()方法
HTML參考:HTML樣式屬性
HTML參考:HTML <style>標(biāo)記