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

mar*_*sma 3 html javascript css

我正在尝试从<html><body>标签中读取"marginTop"样式属性.Chrome开发人员工具通过HTML-CSS显示设置的margin-top:

<style type="text/css" media="screen">
html { margin-top: 28px !important; }
* html body { margin-top: 28px !important; }
</style>
Run Code Online (Sandbox Code Playgroud)

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

console.debug(document.getElementsByTagName('html')[0].style.marginTop);
console.debug(document.getElementsByTagName('body')[0].style.marginTop);
Run Code Online (Sandbox Code Playgroud)

在这两种情况下我都得到空字符串.

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

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

Mat*_*ski 9

你可以用以下方法解决它:

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

的jsfiddle