如何理解getComputedStyle函数?获得渲染计算过的style
发布于 作者:苏南大叔 来源:程序如此灵动~

接着伪元素的概念展开,这里描述一个通过js
计算获得style
的函数getComputedStyle
。这个并不是获得style
,而是获得ComputedStyle
。style
经过原始定义之后,会有各种各样的原因,导致最终生效的实际效果和初始定义不一致,这种就是ComputedStyle
。值得提前说明的是:这个ComputedStyle
并不能获得font-family
的真实字体效果。

大家好,这里是苏南大叔的程序如此灵动博客,这里介绍苏南大叔平时遇到的编程事情。本文介绍js
的函数getComputedStyle()
,是用来获得元素样式的计算生效结果的。测试环境:win10
,chrome@104.0.5112.102
。
getComputedStyle(p, null)
实际上大多数情况下,都是下面的使用方式,例如:
- 第一个参数,就是通过各种
document.
函数获得的原始的dom
对象。 - 第二个参数,高达
99%
的概率情况下,都要传递null
。
获得属性(比如fontFamily
)的方法可以有:
获得style
的具体参数,有两种途径:
- 具体的
.
操作符,属性的写法是驼峰写法,和普通的css
写法不一样。 - 或者使用
.getPropertyValue()
。
从测试结果上来看,获得最终的font-family
结果,并不是符合预期。返回的是一系列字体名称,并不是具体的单一的字体渲染结果。这个字体渲染问题,待后续讨论。

getComputedStyle(p, '::after')
第二个参数,通常意义上为null
。这里什么时候不为null
呢?这里null
实际上表示伪元素,对应的位置写成伪元素的名称即可。
特别强调的是:两个冒号::
的叫伪元素,一个冒号:
叫做伪类,例如::hover
。
伪元素的概念,可以参考:
下面的测试代码,就是基于上述两篇文章,获得对应的内容:

测试结果:

相关文章
- https://developer.mozilla.org/zh-CN/docs/Web/API/Window/getComputedStyle
- https://newsn.net/say/css-marker.html
- https://newsn.net/say/css-first-line.html
综述
更多css
相关经验文章,请点击:


