4

<html>および<body>タグから「marginTop」スタイルのプロパティを読み取ろうとしています。Chrome開発者ツールは、HTMLCSSで設定されたマージントップを表示します。

<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要素からトップマージンプロパティを読み取る方法についての洞察を提供していただければ幸いです。

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 に答える