0

私は次のhtml構造を持っています:

<div id="container">
     <h1>This is an h1 element</h1>
</div>

javascriptを使用してfirefoxまたはchrome divでコンテナの高さを見つけようとすると:

var container = document.getElementById("container");
var offsetHeight = container.offsetHeight;

間違った offsetHeight を取得します (clientHeight で使用した場合も同様です)。H1自体の高さのみを取得し、要素を囲むmargin-before/margin-afterは取得しません。

実際の高さを取得する方法はありますか?

4

2 に答える 2

-1

JQuery でこれらのことを行うことを強くお勧めしますが、通常の JavaScript の場合は、まず div の高さを取得する必要があります。これは既に行っています。次に、マージンとパディングを別々に取得します。
ちょうどこのような

        var container = document.getElementById("container");
        var offsetHeight = container.offsetHeight;

        var a = parseInt(offsetHeight);
        var c = parseInt(container.style.marginTop.replace("px", ""));
        var d = parseInt(container.style.marginBottom.replace("px", ""));
        var e = parseInt(container.style.paddingTop.replace("px", ""));
        var f = parseInt(container.style.paddingBottom.replace("px", ""));

        var g = a +  c + d + e + f;
        alert(g);    

編集

「document.getElementById('container').style.marginTop」を実行すると、値が「px」で返されるため、値を置き換えて「px」を削除してから、int を解析する必要があります。

上記のコードが変更されました

于 2013-05-14T08:06:15.130 に答える