getComputedStyle()方法返回一个CSSStyleDeclaration对象,该对象包含元素的所有CSS属性的值。
计算出的样式是在应用了来自多个来源的“样式”之后,实际用于显示元素的样式。
样式源可以包括:内部样式表,外部样式表,继承的样式和浏览器默认样式。
可以通过CSSStyleDeclaration对象提供的方法或使用CSS属性名称建立索引来访问各个CSS属性值。
window.getComputedStyle(element, pseudoElement)
var heading = document.getElementsByTagName("h1")[0]; var x = window.getComputedStyle(heading, null).getPropertyValue("color");测试看看‹/›
表格中的数字指定了完全支持getComputedStyle()方法的第一个浏览器版本:
方法 | |||||
getComputedStyle() | 11 | 4 | 11.5 | 5 | 9 |
参数 | 描述 |
---|---|
element | 要为其获取计算样式的元素 |
pseudoElement | (可选)一个字符串,指定要匹配的伪元素。对于真实元素,省略(或为null)。 |
返回值: | 一个CSSStyleDeclaration对象,包含元素的CSS声明块,当元素的样式更改时,该对象会自动更新。 |
---|
在此示例中,我们为<p>元素设置样式,然后使用getComputedStyle()检索这些样式,并将其打印到<p>的文本内容中:
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');测试看看‹/›
从元素获取所有计算出的样式:
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>标记