2011-07-14 14 views
1

私は現在取り組んでいる3つの列のレイアウトにいくつかの問題があります。私はレイアウトをうまく作成することができますが、私はアイロンをかける必要があるいくつかの小さな問題があります。CSS 3の列レイアウトの問題

HTML

<div id="container"> 
    <div class="col1"> 
    </div> 
    <div class="col2"> 
    </div> 
    <div class="col3"> 
    </div> 
</div> 

CSS

.col1 
{ 
    float: left; 
} 
.col2 
{ 
    float: left; 
} 
.col3 
{ 
    float: right; 
} 
.col1, 
.col3 
{ 
    width: 100px; 
} 

私の最初の問題は、列1および3は、幅が固定されていることであると私は間のギャップを埋めるために展開する中央の列を必要としますそのうち2つ私は私の人生のためにこれを行う方法を理解することはできません。私は絶対的な配置を使用してこれを達成することができますが、私の次の問題にうまくいきます...

ブラウザがリサイズされると、互いに下にきちんとラップする必要があります。

何か助けや指針をいただければ幸いです。理想的には、私はできるだけ小さなハッキングとjavascriptでこれを行うようにしたいと思います。 http://jsfiddle.net/BCJ6C/6/

乾杯:

は、ここで私はと遊ぶために始めましたフィドルです!

+0

パーセンテージの幅を使用できますか? col1とcol3を10%、col2を80%にしますか? スクリーンサイズが変更されたときに、別のスクリーンの下に配置する必要があります。その場合、col2がどのように見えるのでしょうか? – Dave

+0

こんにちはデイブ、残念ながら私はパーセンテージを使用することはできません。 Salman Aの答えがどのように機能するかについての私のコメントを参照してください。 –

+0

@Steve Day - 黄色のボックスはどうやって動作しますか?彼らは常に固定された高さですか?そして、黄色いボックスの内容はどうですか?それは変わるのですか? – Joonas

答えて

1

はここだけ中央の列をフロート状態にしないでください、あなたのfiddle, updated

です。悪い点は、ソースの順序で列1と列3の下に移動する必要があることです。これは問題ではないことを願っています。

+0

ありがとうございますが、カラム2はあなたのフィドルで包まれません。私はすべての列をラップする必要があります。すべての列のブラウザウィンドウに十分な空きがない場合は、理想的には1つずつ折り返します。したがって、最初は3列目が2行目を先頭にして折り返し、次にウィンドウが小さくなると2列目が1行下に折り返されます。それは理にかなっていますか? –

+0

下の票、それは中間の列をラップしていないので –

+0

@スティーブ:私は興奮し、質問の半分だけ答えたと思う。私はより良い答えを出すことができる場合は更新されます。 –

0

私は、これはyoureのを探して何だと思う: http://matthewjamestaylor.com/blog/holy-grail-liquid-layout-no-quirks-mode

編集:URLを変更しました。誤ってこの最初の古いバージョンを投稿しました

+0

ありがとうございますが、ブラウザウィンドウのサイズが変更されたときにラップする列が必要です。 –

+0

@Steve Day - ラッピングではどういう意味ですか? – Joonas

+0

ブラウザのウィンドウを小さくすると、列が1つの垂直線になるまで、列を折り返す必要があります。私の元の投稿には喧嘩があり、その結果の答えは私が必要とするものに近いものになっています。 –