divのscrollHeightを取得しようとしましたが、正しく取得していますが、その特定のdivのcssにheightプロパティを追加すると、異なる値が取得されます。
フィドルを実行するだけで、scrollheightプロパティのコンソール値が268(すべての子の高さの合計に等しい)に等しいことがわかります。
しかし、cssに高さの値(たとえばheight:50px;)を追加すると、出力は252になります(違いは最後の子要素のマージンだと思います)。
不一致がある理由を誰かが答えることができますか?
編集 質問が明確ではなかったので、私はidを言い換えました。親divの高さを指定すると、スクロールの高さが252ピクセルになりますが、高さを指定しないか「自動」に設定すると、268ピクセルになります。後者の場合もマージンが崩れない理由を知りたかっただけですか?余白が折りたたまれていることは心配していませんが、これら2つのシナリオでスクロールの高さが異なる理由を知りたいだけですか?
以下の答えは完全に問題ありません。ただし、javascriptを使用して正しいscrollHeightも取得しました(最後の子の下マージンを含む)
var h = $(div).height();
$(div).height("auto");
var ch = $(div)[0].scrollHeight;
$(div).height(h);