2011-02-08 23 views
3

私は4または5のサブ<div>を保持するメインコンテナ<div>を持っています。容器は、一定の高さと一定の幅を有する。サブdivの位置を上から下、左→右の順に並べる最適な方法は何ですか?上から下への左→右の配置要素

私はサブディビジョンをフローティングにしようとしましたが、それはちょうど私に左→右、上から下の順番を与えます。サブのdivは、変数の高さが、一定の幅を持つことができること

<div id="container"> 
    <div class="subdiv">sub div 1...</div> 
    <div class="subdiv">sub div 2...</div> 
    <div class="subdiv">sub div 3...</div> 
    <div class="subdiv">sub div 4...</div> 
    <div class="subdiv">sub div 5...</div> 
</div> 

注意:私は、このようなコードをマークアップするとき

は基本的に私はこの

[ sub div 1][sub div 3][sub div 4] 
[ sub div 2][   ][sub div 5] 

をしたいです。

+1

IE6をサポートする必要がありますか? IE6で動作しないCSSトリックがたくさんありますが、IE6を無視したいと思うかもしれませんが、一部のセクター、特に大企業のセクターでは重要なブラウザです。 、それほど少ないです。したがって質問です。) –

+0

これはIE 7(厳格なdtd)以上が必要です。 –

答えて

2

私の知る限りでは、それを行うための方法はありません。

複数列のレイアウト(-moz-column-widthなど...)をサポートする一部のブラウザでのみ動作するCSS3がありますが、コンテンツ内のDIVで動作するかどうかはわかりません。そして、私はそれがIE7

で、私はそれがネイティブでこれを行うための唯一の方法はにある3列のコンテナ

<div id="container"> 
    <div class='column'> 
     <div class="subdiv">sub div 1...</div> 
     <div class="subdiv">sub div 2...</div> 
    </div> 
    <div class='column'> 
     <div class="subdiv">sub div 3...</div> 
     <div class="subdiv">sub div 4...</div> 
    </div> 
    <div class='column'> 
     <div class="subdiv">sub div 5...</div> 
    </div> 
</div> 
+0

ええ、私はそれが唯一の理由で分割するのを恐れていました。サブdivのリストが動的であり、それらを分割する必要があります。私はそのルート上の何かを考えようとします。 –

+0

ページがレンダリングされると、クライアント側でコンテンツレイアウトを処理するためにjqueryプラグインなどを検索することができます(これはおそらく何か?http://welcome.totheinter.net/columnizer-jquery-plugin /)。私はこのアプローチを2,3回似た問題を解決するために使用しなければなりませんでした – Damp

+0

@Dampはそのリンクを見たいと思っていますが、仕事からはブロックされています:( –

1

はdiv要素で、このCSSを使って、ありがとう:

display: inline-block 
+0

これは 'float:left;と同じことを(順序通りに)行うつもりです。 –

+0

これは私が必要とする方法では機能しません。私は、使用しているマークアップの種類を表示するために質問を修正しました。 –

+0

あなたは正しい、私の答えは吸う。 – Sjoerd

0

にコンテンツを分割することですやるだろうな方法をサポートしていないことかなり確信していますCSS3の列を使用してください(Dampの説明を参照)。しかし、this questionのように、JavaScriptで同様の効果を得る方法に関する記事があります。その場合は、実際にはあなたよりも複雑です。

私は、JSでそれを行う最善の方法は、最初にDampが最良の推測で示唆したように、最初に列のコンテナに分割することだと考えています。これは、JSを無効にしている人には役立つでしょう。それから、最初の推測が外れていれば、サブディビジョンの高さを測定して移動させてください。ページを生成するためにサーバー側言語を使用していると仮定すると、列を均等に分割できるはずです。おそらく、サブディビジョンの可能性の高い高さのヒューリスティックとしてコンテンツの長さ(テキストを前提とする)をチェックすることによって、分割についての良い見積りを行うことさえできます。

関連する問題