用js如何獲取div中css的 margin、padding、height、border等。你可能說可以直接用document.getElementById("id").style.margin獲取。但是你說的只能獲取直接在標(biāo)簽中寫的style的屬性,無法獲取標(biāo)簽style外的屬性(如css文件中的屬性)。而下面方法則兩者值都可以獲取。
實例效果圖如下:
js在獲取css屬性時如果標(biāo)簽中無style則無法直接獲取css中的屬性,所以需要一個方法可以做到這點。
getStyle(obj,attr) 調(diào)用方法說明:obj為對像,attr為屬性名必須兼容js中的寫法(可以參考:JS可以控制樣式的名稱寫法)。
Js代碼
完整實例測試代碼:
Html代碼
<body>
<div id="box1">box1的css.#box1{margin:5px;padding:5px;height:100px;width:200px;}</div>
<a href="javascript:;" onclick="getcss('marginTop')">獲取box1的margin-top</a><br />
<a href="javascript:;" onclick="getcss('paddingTop')">獲取box1的padding-top</a><br />
<a href="javascript:;" onclick="getcss('height')">獲取box1的height</a><br />
<script>
//獲取class里面的屬性值
var divs=document.getElementById("box1");
function getStyle(obj,attr){
var ie = !+"/v1";//簡單判斷ie6~8
if(attr=="backgroundPosition"){//IE6~8不兼容backgroundPosition寫法,識別backgroundPositionX/Y
if(ie){
return obj.currentStyle.backgroundPositionX +" "+obj.currentStyle.backgroundPositionY;
}
}
if(obj.currentStyle){
return obj.currentStyle[attr];
}
else{
return document.defaultView.getComputedStyle(obj,null)[attr];
}
}
function getcss(typ){
alert(getStyle(divs,typ));
}
</script>
</body>
</html>
新聞熱點
疑難解答