之前有一次在写拖拽效果的时候,用到了box.style.left和box.style.top(box是选出来的div元素),但是怎么弄都发现不成功,后来就console.log看一下发现啥都木有!!惊了。后来发现用element.style读取和改变的是内联样式,刚才的所有的css效果都成内联样式才有用,若是写成页面级css是木用的,读取出来的“当银”读取不到。而且要注意用element.style获取的值都是字符串型的。
还有一个window.getComputedStyle()这个也是可以获取一个CSSStyleDeclaration 对象,这个对象获取的是所有最终使用的CSS值,但是这个获得的对象仅能读。这个在用时要给两个参数window.getComputedStyle(element,[pseudoElt]),第一个其实是想要获取的样式的元素,而第二个指定一个要匹配的伪元素的字符串。必须对普通元素省略(或null)。
window.getComputedStyle()和style的区别:
(1)前者是仅读而后者是可读可写
(2)前者能获取到所有最终使用的css值,而后者仅能获取到style中的值,若style中没设值则为空
更多其他详见https://www.zhangxinxu.com/wordpress/2012/05/getcomputedstyle-js-getpropertyvalue-currentstyle/
若有不足之处请加以指正,若要转载请声明出处,谢谢。