私は似たような質問をたくさん見つけて、いくつかの解決策 (いわゆる「聖杯」CSS レイアウトを含む) を試しましたが、それらは私が必要としているものを完全には実行しません。
id を含む div (ブロックを含む CSS) がありright
ます。左側のその中に固定幅の div が必要です (分割バーですが、何に使用されているかは問題ではありません; id splitpane
); 右側に、残りのスペースを埋める、別の div (right-box
下の id)。
display: inline-block
2 つの内側の divを ( でvertical-align: top
)作成しようとしましたが、左側width: 3px
の div を に設定しましたが、右側の幅を 100% - 3px に設定する方法がありません。float: left
/ margin-left: -100%
/トリックも使用してみましmargin-left: 3px
たが、同じ問題があります。100% プラス 3px がブロックを含む親をオーバーフローし、スクロール バーがポップアップします。(もちろん、問題はスクロール バー自体ではありません。overflow: hidden
削除するために使用できますが、右側のコンテンツが切り捨てられます。)
現在width: 99.5%
、右の div に使用していますが、これはひどいハックです (画面の幅によってはオーバーフローする可能性があります)。次のようになります。
<div id="right"><div id="splitpane"></div><div id="right-box">
...
</div></div>
CSS を次のように使用します (float バージョンですが、インライン ブロック バージョンも同様です)。
#right {
display: inline-block;
vertical-align: top;
height: 100%;
width: 85%; /* this is part of a larger div */
}
#right-box {
width: 99.5%; /* stupid hack; actually want 100% - 3px for splitter */
height: 100%;
}
#splitpane {
float: left;
width: 3px;
height: 100%;
background: white;
border-left: solid gray 1px;
border-right: solid gray 1px;
cursor: e-resize;
}
これを行うことさえ可能ですか?これは内部アプリ用です。したがって、ソリューションは Firefox 3 でのみ機能する必要があります (ただし、FF3 に固有の場合は、ソリューションが標準に準拠しているが、他のブラウザーが準拠していないためであることが望ましいです。Firefox のみを使用しているからではありません)コード)。