据我所知,[some elem] .style.maginTop会返回一个带有元素上边距的字符串.
相反,我总是得到一个空白的字符串.我想在身体上使用它,但我也尝试过div,但这也不起作用.
console.log(document.body.style.marginTop); // logs ""
console.log(typeof(document.body.style.marginTop)); // logs "String"
var elem = document.getElementById("testDiv");
console.log(elem.style.marginTop); // logs ""
body {
margin-top:100px;
}
#testDiv {
margin-top:50px;
}
hi!
test
我不确定我做错了什么...有人有非jQuery解决方案吗?
该HTMLElement.style只返回内嵌样式:
HTMLElement.style属性返回一个CSSStyleDeclaration对象,该对象表示元素的样式属性.
要从样式表访问样式,请使用Window.getComputedStyle(element):
Window.getComputedStyle()方法在应用活动样式表并解析这些值可能包含的任何基本计算后,给出元素的所有CSS属性的值.
var elem = document.getElementById("testDiv");
var style = window.getComputedStyle(elem);
//output
document.body.innerHTML = style.marginTop;
body {
margin-top:100px;
}
#testDiv {
margin-top:50px;
}
hi!
test