divの高さを決定しようとしています。これは単純に聞こえますが、子孫のコンテンツのみがフローティングされるという事実によって複雑になるため、height/outerHeight (jQuery を使用)/clientHeight/offsetHeight を要求すると、ページ上で確実にレンダリングされることは明らかですが、0 しか返されません。高さのある。HTML 構造の例を次に示します。
<div id="root">
<div class="header"></div>
<div class="body">
<div class="text-left" id="text-one">
<p>Some text taking up multiple lines</p>
</div>
<div class="text-right" id="text-two">
<p>Other text</p>
</div>
</div>
</div>
「text-left」要素と「text-right」要素には「float: left;」があります。と「float: right;」そのため、「ルート」の高さを尋ねると、0 であることがわかります。ただし、もちろん、「テキスト 1」と「テキスト 2」の高さを取得すると、正しくそのことがわかります。それは20か何かです。
「ルート」要素の実際の高さを決定するにはどうすればよいですか? (たとえば、「text-one」の高さが 50 で「text-two」の高さが 20 の場合、実際の高さは 50 であることがわかります)
すべての子孫要素の高さを計算し、それらが浮いているかどうかなどを計算し、最終的な数値を得る何らかのロジックがあると思います...しかし、私はそれを解決するほど賢くありません。
前もって感謝します。
編集: HTML の変更 (たとえば、「クリア」を含める) はオプションではないことに注意してください。このdivの高さをそのまま伝えられるようにする必要があります。