19

私は2つの部門を持っています:

<div id="div1"></div>
<div id="div2">div2</div>​

私のCSSで:

#div1{ height:20px}​

両方の div の高さは 20pxです。デモを確認してください これは、寸法が開発者によって設定されたものか、ブラウザによって計算されただけのものかを知るのに役立ちます。

4

4 に答える 4

11

私はそれを達成する方法を見つけました:)

function getRealHeight(element){
    var height=0;
    if (element.children().length>0){
        var temp = $('<div></div>');
        temp.append(element.children());
        height = element.height();
        element.append(temp.children());
    } else {
        var html=element.html();
        element.html('');
        height = element.height();
        element.html(html);
    }
    return height;
}

</ p>

<ahref="http://jsfiddle.net/ayUsw/10/">デモ

于 2012-05-11T13:52:26.063 に答える
2

この関数を使用します。

function emptyHeight ( elem ) {
    var $temp = $( '<div />' );
    var $elem = $( elem );
    var height;

    $temp.append( $elem.contents() );
    height = $elem.height();
    $elem.append( $temp.contents() );

    return height;   
}

アイデアは、要素からすべての子ノードを一時的に切り離すことです。CSS で高さが設定されていない限り0、子を持たない要素の高さは です。

DIV 要素をその関数に渡します。が返された場合0、それは DIV の高さが CSS で設定されていないことを意味します。

if ( emptyHeight( yourDiv ) === 0 ) {
    // the DIV does not have any height value set via CSS
} else {
    // the DIV has a CSS height set
}
于 2012-05-11T15:10:38.793 に答える