前端学习笔记style,currentStyle,getComputedStyle的区别和用法

html-css031

前端学习笔记style,currentStyle,getComputedStyle的区别和用法,第1张

getComputedStyle与style的区别

我们使用element.style也可以获取元素的CSS样式声明对象,但是其与getComputedStyle方法还有有一些差异的。

只读与可写

正如上面提到的getComputedStyle方法是只读的,只能获取样式,不能设置;而element.style能读能写,能屈能伸。

获取的对象范围

getComputedStyle方法获取的是最终应用在元素上的所有CSS属性对象(即使没有CSS代码,也会把默认的祖宗八代都显示出来);而element.style只能获取元素style属性中的CSS样式。因此对于一个光秃秃的元素<p>,getComputedStyle方法返回对象中length属性值(如果有)就是190+(据我测试FF:192, IE9:195, Chrome:253, 不同环境结果可能有差异), 而element.style就是0。

元素的style属性是个只读属性,不能直接赋值,只能针对子属性进行设置,如

like.style.width = "100px"

需要同时进行多个属性的设置还有一种方案:

like.style.cssText = "width:150pxheight:150px"

当然,这样就会覆盖like元素上原有的样式定义,如果需要,安全的做法如下:

like.style.cssText +="width:150pxheight:150px"

不能修改

getComputedStyle是一个可以获取当前元素所有最终使用的CSS属性值。返回的是一个CSS样式声明对象([object CSSStyleDeclaration]),只读。