2009-09-02 4 views
2

私はdivブロックのリストを高さの異なる2つの列で整列させようとしています。すべてのブロックのサイズが修正されていれば、それらは自然に互いに積み重ねられますが、これは高さが変化するため、次のブロックに進む前に隣接するブロックの下に空白がたくさんあります。変数サイズ 'wrap'/stick/flowをfloat divにすることは可能ですか?

しかし、これは片側にしか起こらないことに気付きました。ブロックが左にフローティングされている場合は、右の列ブロックが自動的に空白を埋め、逆も同様です。

しかし、私は今、両面の流動性を実現するための解決策を模索しています。

私が意味するものの例を見ることができますhere

2列目のすべてがうまくフィットしますが、左側には背の高いサイズのための空白がたくさんあります。

CSSは、このようなものです:

.container { 
    width: 600px; 
} 
.item { 
    width: 250px; 
    height: auto; 
    background: darkgray; 
    border: 1px solid black; 
    float: left; 
    margin: 5px 0 0 5px; 
    padding: 5px; 
} 
+0

この質問を閉じて、代わりにhttp://doctype.comで質問してください。 – EBGreen

+0

ああすみません。トピックに関するGoogleの検索では、ここに関連記事が掲載されました。しかし、あなたが正しい、doctype.comは、より適切な場所を求めるようだ。ありがとう! – Winterain

+0

問題ありません。 doctypeはちょうど最近、Justiceのリーグに参加し、彼らが参加するまで、これは質問する場所でした。 – EBGreen

答えて

1

あなたは3つのオプションそれが欠点だ持っているすべてを持っています。

  1. が開始位置、各項目を計算し、それに応じて相対 位置を使用して各 いずれかを再配置するJavaScriptソリューションを記述。

  2. 2つのコンテナの列が の浮動小数点になるようにマークアップを変更します。あなたは の間で項目をプログラムで配布する必要があります。

  3. 各項目の次の高さと一致するように表を使用します。

明らかに、最後の2つは非常に意味的ではなく、最初のものは項目のリストの大きさによっては実用的ではない可能性があります。私はCSS 3でそれを行う方法があると信じていますが、現時点ではブラウザのサポートが欠けています。

+0

+1 - コンテンツに応じて、ブロックを2つのセマンティックカテゴリに分ける方法を見つけることができ、#2をかなり意味のあるオプションにします。また、その問題を回避するためにデザインを作業する方法もありますので、スペースは目立ちません(例えば、ボックスに背景を入れないなど)。 –

関連する問題