0

ボックスの高さをオーバーフローしたコンテンツの高さに調整して、オーバーフローしたフローティング コンテンツを修正しようとしていますが、うまくいかないようです。

            if ( $('.content-right').outerHeight() > $('.content-right').parent().parent().height() ) {
                $('.content-right').parent().parent().height($('.content-right').outerHeight(true));
            }
            console.log('Box Height: ' + $('.content-right').parent().parent().height());
            console.log('Content Height: ' + $('.content-right').height() );

これは出力されます

Box Height: 599
Content Height: 594 

以下の例では、div が明らかにはるかに大きいため、これは正しくありません。何か案は?

問題領域 画像形式の問題領域: http://prntscr.com/4p1obb

4

1 に答える 1

1

パラメータを渡さない場合、高さを返さない古いバージョンのバグ jQuery outerHeight があります。また、コメントで示唆されているように、height() から true を削除する必要があります。

if ( $('.content-right').outerHeight(true) > $('.content-right').parent().parent().height() ) {
  $('.content-right').parent().parent().height($('.content-right').outerHeight(true));
}
console.log('Box Height: ' + $('.content-right').parent().parent().height());
console.log('Content Height: ' + $('.content-right').height() );

アップデート:

これを試してください (上記のバグは引き続き適用されるため、必ずパラメーターを入力してください)。以下のコードでは、高さが 868 になります。

var outerHeight = 0;
$('.content-right > *').each(function() {
  outerHeight += $(this).outerHeight(true);
});
console.log(outerHeight);
于 2014-09-21T20:42:56.983 に答える