不明な数の自己サイズ調整段落と、おそらく他の要素を含む固定サイズのコンテナーがあります。その内容の後に表もあります。コンテナの残りの高さをテーブルで埋める必要があります。
私は次のHTMLを持っています:
<div id="container">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer mattis. Sed semper dui sed ante. Sed luctus tincidunt nisl. Proin iaculis adipiscing nisl. Class aptent taciti sociosqu ad litora amet.</p>
<p>Lorem ipsum dolor sit amet, consectetur cras amet.</p>
<table>
<thead>
<tr>
<th>One</th>
<th>Two</th>
<th>Three</th>
<th>Four</th>
</tr>
</thead>
<tbody>
<tr>
<td>111</td>
<td>222</td>
<td>33333</td>
<td>4444</td>
</tr>
<tr>
<td>111</td>
<td>222</td>
<td>33333</td>
<td>4444</td>
</tr>
<tr>
<td>111</td>
<td>222</td>
<td>33333</td>
<td>4444</td>
</tr>
<tr>
<td>111</td>
<td>222</td>
<td>33333</td>
<td>4444</td>
</tr>
</tbody>
</table>
</div>
次の CSS を使用します。
#container {
width: 500px;
height: 500px;
background: red;
}
p {
margin-bottom: 20px;
}
table {
height: 100%;
width: 100%;
}
table,
table th,
table td{
border: 1px solid black;
}
これを行うと、テーブルは残りの領域だけでなく、コンテナーの高さを取得します。CSS でコンテナと子を table と table-row として設定しようとしましたが、他の要素が大きすぎるか、マージン内で緩んでいます。
フィドルはhttp://jsfiddle.net/QLwkU/にあります。
これに対する純粋な CSS ソリューションを期待していましたが、合理的で再利用可能な jQuery ソリューションであれば問題ありません。
私はもう試した:
var totalHeight = 0;
$('#container').children(':not(table)').each(function(){
totalHeight += $(this).outerHeight(true);
});
$('#container table').css({'height': ($('#container').outerHeight() - totalHeight)});
しかし、これにより、テーブルに余白が必要になった場合にそれを追加することがやや難しくなります。
ご意見やご提案をいただければ幸いです。