親div内に2つのdivが(並んで)あります。右側のdivが残りのスペースの100%(つまり、100%-200px)を占めるようにし、常に左側のdivの隣(左側のdivの下ではない)にとどまる必要があります。
<div id="wrapper" style="width: 100%;">
<div id="left" style="background-color: Blue; height: 100px; float: left; width: 200px;"></div>
<div id="right" style="background-color: Aqua; height: 100px; float: left; width: 100%;"></div>
<div style="clear: both;"></div>
</div>
固定幅の列は1つしかないので、左にフロートさせてください。 2列目は、floatとwidthを指定しないでください。これにより、幅が100%になります。ただし、左マージンを追加する必要があります。そうしないと、2番目のカラムがフロートカラムと干渉します。
<div id="wrapper">
<div id="left" style="background-color: Blue; height: 100px; float: left; width: 200px;"></div>
<div id="right" style="background-color: Aqua; height: 100px; margin-left: 200px;"></div>
<div style="clear: both;"></div>
</div>
親ラッパーをfloat
にします。また、2番目の子divのwidth: 100%
を削除することもできます。そして、その幅は内部のコンテンツの量によって設定されます。または、両方の子divのパーセンテージを設定することもできます。例30%
および70%
。
右側のdivに位置プロパティを追加します。左のdivは200px、右のdivは残りのスペースを占めます。
#right{
background-color:Aqua;
height:100px;
position:absolute;
top:0;
right:0;
left:200px;
}
さて、新しいブラウザでは、display:box;を使用できるようになります。およびbox-flex:1、...プロパティ。私は現在、Chromeのみが必要なWebプロジェクトでこれを使用しているので、この新しいCSS3のものは、私にとって多くの問題を解決しました。
右のdiv
の幅を一定にしたい場合:
<div style="position:relative">
<div class='wrapper'>
<div style="width: 70%"></div>
<div style="width: 20%"></div>
<div style="width: 10%"></div>
<div style="clear:both"></div>
</div>
<div class="constant-width"><div>
</div>
そしてCSS
.wrapper{
margin-right: CONSTANTpx;
}
.wrapper div{
float:left;
}
.constant-width{
top: 0px; right:0px; position:absolute;
width: CONSTANTpx
}
国境がなくてもうまくいく
左のdivは、相対位置を使用して、floatleftとそのピクセル幅を持つ必要があります。右のdivは相対的な位置のみを持ち、オーバーフローは非表示になっている可能性があります。これで問題が解決するはずです。フロートをクリアするdivを使用する必要はありません。
受け入れられた答えは良いですが、右側の列もフローティングであるため、サブナビゲーションがアンダーラップするという問題がありました。
最新のブラウザでは、すべての要素をフローティングにして、よりクールなCSSで同じ効果を得ることができます。 「width:calc(100%-380px);」を使用するつまり、要素をフロートさせ、適切に配置し、見栄えを良くすることができます...
.container { float: left; width: 100%; }
.container__left { float: left; width: 380px; height: 100px; background: blue; }
.container__right { float: right; width: calc(100% - 380px); height: 100px; background: green; }