之前有一次在寫拖拽效果的時候,用到了box.style.left和box.style.top(box是選出來的div元素)似嗤,但是怎么弄都發(fā)現(xiàn)不成功啸臀,后來就console.log看一下發(fā)現(xiàn)啥都木有!烁落!驚了乘粒。后來發(fā)現(xiàn)用element.style讀取和改變的是內(nèi)聯(lián)樣式,剛才的所有的css效果都成內(nèi)聯(lián)樣式才有用伤塌,若是寫成頁面級css是木用的灯萍,讀取出來的“當(dāng)銀”讀取不到。而且要注意用element.style獲取的值都是字符串型的每聪。
還有一個window.getComputedStyle()這個也是可以獲取一個CSSStyleDeclaration?對象旦棉,這個對象獲取的是所有最終使用的CSS值,但是這個獲得的對象僅能讀药薯。這個在用時要給兩個參數(shù)window.getComputedStyle(element,[pseudoElt])绑洛,第一個其實是想要獲取的樣式的元素,而第二個指定一個要匹配的偽元素的字符串童本。必須對普通元素省略(或null)诊笤。
window.getComputedStyle()和style的區(qū)別:
(1)前者是僅讀而后者是可讀可寫
(2)前者能獲取到所有最終使用的css值,而后者僅能獲取到style中的值巾陕,若style中沒設(shè)值則為空
更多其他詳見https://www.zhangxinxu.com/wordpress/2012/05/getcomputedstyle-js-getpropertyvalue-currentstyle/
若有不足之處請加以指正讨跟,若要轉(zhuǎn)載請聲明出處,謝謝鄙煤。