使用JavaScript读取html / body标签margin-top

时间:2013-01-02 11:45:33

标签: javascript html css

我正在尝试从<html><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元素中读取上边距属性的信息,我将不胜感激。

2 个答案:

答案 0 :(得分:9)

您可以通过以下方式解决问题:

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

jsFiddle

答案 1 :(得分:1)

document已经了解body元素,因此:

window.getComputedStyle(document.body).getPropertyValue('margin-top');