HTML/CSS でレイアウトを作成しようとしています。目標はこれについてです:
このレイアウトの一部の要素のサイズは固定されていません。左側の領域は固定幅で、フッターは固定 (コンテンツ マッチング) の高さです。左側のリストは、高さ、フッターのテキスト、幅、およびキャンバスの両方の寸法を拡張するため、ブラウザー ページ全体が満たされますが、スクロールバーは表示されません。ああ、B はボタンですが、それはあまり重要ではないと思います。
いくつかの例 ( this ) と参照 ( this ) を見て、それらから学ぼうとしましたが、思い通りにはなりません。私が行ったより近い試みの1つはこれです:
<html><body style="margin: 0; padding: 0;">
<div style="position: absolute; background: #afa; top: 0px; bottom: 0px; left: 0; right: 0px;">
<div style="position: absolute; background: #afa; top: 0px; bottom: 0px; left: 0; width: 240px;">
<input style="width: 240px" id="selectedPosition"></input>
<select style="position: relative; width: 240px; height: 100%;" id="points" multiple="multiple"></select>
<div style="position: relative; background: #afa; left: 0; width: 240px;">
<input style="width: 80px" type="button" value="Add"></input><!--
--><input style="width: 80px" type="button" value="Up"></input><!--
--><input style="width: 80px" type="button" value="Down"></input>
</div>
</div>
<div>
<div><input style="position: absolute; bottom: 0px; left: 0px; width: 100%"></input></div>
<div><input style="position: absolute; bottom: 0px; right: 0px;" type="button" value="Button 4"></input></div>
</div>
<div style="position: absolute; background: #aaf; height: 100%; left: 240px;top: 0px;right: 0px; overflow: auto;"></div>
</div>
</body></html>
ここでの問題は、右下のボタンがサイズ拡張要素で覆われている下部要素です。おそらく固定の寸法またはマージンでこれを修正できますが、「適切な」方法で実行したいと思います。
別のアプローチは、行と列にまたがる 4x5 テーブルを使用することでしたが、私はさらに混乱し、すぐにやめました。
私は HTML/CSS でのレイアウトにかなり慣れていないので、実際の解決策にもかかわらず、この問題の「ダミーのための」ソースは、仕事を成し遂げるのに役立ちます。
アップデート
リンクとフィコの答えを見た後。ただし、最も近い試みはthisです。問題は、幅/高さが 100% に設定されている場合、リストと下部のテキストの両方がそれぞれのボタンと重なることです (jsfiddle の例では、デモンストレーションのために低い数値を使用しました)。ちなみに、この例のリストは垂直方向にはまったく伸びていません。私のローカルファイルを使用する場合、そうです。
固定フッターと高さ充填列で見たすべての例は、フッターに固定サイズの高さを使用し、マージンとして負に適用されますが、フッターはコンテンツをラップするだけです。「次の要素に到達するまで延長する」というルールを設定する方法はありませんか?