js中style,currentStyle和getComputedStyle的區別
<style>
body{margin:0 auto;text-align:center;}
div{position:relative;left:10px;}
</style>
<div id="pic1">
img src="02362982432fa1b14e.jpg">
<script>
var dom1 = document.getElementByIdx_x('pic1');
console.log(dom1.style.left);
</script>
控制檯中顯示為空。
style只能獲取元素的內聯樣式,內部樣式和外部樣式使用style是獲取不到的。
currentStyle可以彌補style的不足,但是只適用於IE。
getComputedStyle同currentStyle作用相同,但是適用於FF、opera、safari、chrome。
寫了個getStyle的自定義函式,來相容ie和其他瀏覽器,使用getStyle來獲取頁面中元素的樣式,問題解決。
getElementStyle: function(el,attr){
//獲取el當前的attr樣式,解決ie問題
return el.currentStyle?el.currentStyle[attr]:getComputedStyle(el,null)[attr];
}
獲取後返回10px。
注意:
currentStyle和getComputedStyle只能用於獲取頁面元素的樣式,不能用來設定相關值。
如果要設定相應值,應使用style。
相關文章
- js便籤筆記(7)——style、currentStyle、getComputedStyle區別介紹【轉載】JS筆記
- JS - 獲取CSS屬性值 getComputedStyle()與currentStyle()、style()方法JSCSS
- getComputedStyle與currentStyle
- Android中 @和?區別以及?attr/**與@style/**等的區別Android
- Js中for in 和for of的區別JS
- html中list-style-type與list-style的區別HTML
- JS中的!=、== 、!==、=== 的用法和區別JS
- JS中的!=、== 、!==、===的用法和區別。JS
- CSS中 offsetLeft 與style.left 的區別CSS
- js中!和!!的區別與用法JS
- js中AMD和CMD的區別JS
- js中null和undefined的區別JSNullUndefined
- js中undefined和null的區別JSUndefinedNull
- JS中class和id的區別JS
- list-style與list-style-type的區別
- offset與style區別
- Js中concat和push的區別JS
- js中==和===的區別以及總結JS
- js中var和let的快速區別JS
- CSS列表中list-style-position inside 和outside 的區別?CSSIDE
- Js中的subStr和subString的區別JS
- ArcGIS API for JS 中的styleAPIJS
- JS中const、var 和let的區別JS
- JS陣列中(for...in)和(for...of)的區別JS陣列
- js中“==”與"==="的區別JS
- offsetwidth和style.width的區別是什麼
- Html5 canvas中width、height和style的寬高區別詳解HTMLCanvas
- @JsonProperty和@JsonAlias的區別JSON
- Vue.js中 computed 和 methods 的區別Vue.js
- jsp中include指令和include動作的區別JS
- js 中style.height和offsetHeight比較JS
- JS 的型別(null 和 undefined 的區別)JS型別NullUndefined
- mysql中!=和is not的區別MySql
- JavaScript中for in 和for of的區別JavaScript
- mysql中“ ‘ “和 “ ` “的區別MySql
- JavaScript中==和===的區別JavaScript
- js中 let 與 var 的區別JS
- js 中substr、substring的區別JS