4

我正在尝试从<html>and<body>标签中读取“marginTop”样式属性。Chrome 开发者工具显示通过 in-HTML CSS 设置的 margin-top:

<style type="text/css" media="screen">
html { margin-top: 28px !important; }
* html body { margin-top: 28px !important; }
</style>

但是,当我尝试这样的事情时:

console.debug(document.getElementsByTagName('html')[0].style.marginTop);
console.debug(document.getElementsByTagName('body')[0].style.marginTop);

在这两种情况下,我都会得到空字符串。

jQuery 的offset()函数可以正确检测边距。不幸的是,在这种情况下我不能使用 jQuery,它必须是纯 JavaScript。

如果有人能提供一些关于如何从 html 和 body 元素中读取 top margin 属性的见解,我将不胜感激。

4

2 回答 2

10

您可以通过以下方式解决它:

var element = document.getElementsByTagName('html')[0],
    style = window.getComputedStyle(element),
    marginTop = style.getPropertyValue('margin-top');

jsFiddle

于 2013-01-02T11:54:04.550 回答
3

document已经有关于body元素的知识,所以:

window.getComputedStyle(document.body).getPropertyValue('margin-top');
于 2018-07-10T10:27:56.370 回答