document.body.style.marginTop 在 JS 中返回空白字符串

2024-04-24

据我了解, [some elem].style.maginTop 将返回带有元素上边距的字符串。

相反,我总是得到一个空字符串。我想在 body 上使用它,但我也尝试在 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!

<div id="testDiv">test</div>

我不确定我做错了什么...有人对此有非 jQuery 解决方案吗?


The HTMLElement.style https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style只返回内联样式:

HTMLElement.style 属性返回一个 CSSStyleDeclaration 对象,该对象表示元素的样式属性.

要从样式表访问样式,请使用Window.getCompulatedStyle(元素) https://developer.mozilla.org/en-US/docs/Web/API/Window/getComputedStyle:

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!

<div id="testDiv">test</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

document.body.style.marginTop 在 JS 中返回空白字符串 的相关文章