関連する JS Fiddle http://jsfiddle.net/arosen/FMQtR/
問題
私のHTMLは次のようになります。
<div id='parent'>
<div id='one'>
A variable amount of text here.
</div>
<div id='two'>
A less important variable amount of text here.
</div>
</div>
#parent div は固定の高さであり、変更できません。その中に、少なくとも 2 つの子 div があります。最初のもの (または多数) には、その高さを決定する不明な量のテキストが含まれます。最初のものの内容に基づいて、最後のものは、親に残っているがオーバーフローしない限り、高さを占めるようにしたいと考えています。
私の現在のCSSの例は次のとおりです。
#parent {
border: 1px solid #000;
height: 150px;
width: 150px;
}
#one, #two {
border: 1px dashed #333;
height: auto;
margin: 5px;
padding: 5px;
overflow: hidden;
}
私の現在のJSソリューション
function() {
var $two = $('#two');
var $parent = $('#two').parent()
$parent.css('overflow', 'hidden');
var heightDifference = $parent[0].scrollHeight - $parent.height();
$two.css('height', $two.height() - heightDifference);
}
この問題に対する CSS レイアウトまたは HTML ソリューションがあるかどうか、または最後のボタンを押して実行されるフィドルにある JS ソリューションを使用する必要があるかどうか疑問に思っています。
EDITページでテキストが一度変更されることはありませんが、サーバーからロードされた情報によっては、ページがレンダリングされるまでテキストの量がわからないため、JSフィドルを更新しました。
EDIT 2最新の (および IE 9) ブラウザーのみをサポートする必要があります。
編集 3他の jQuery プラグインで使用されるため、最後の divには高さが必要です。