2012-02-20 15 views
2

私はCSSルールとHTML elemtentsの最適な組み合わせは、このレイアウトを実現するためには何かわからない午前:(謝罪はイメージのために、それは私が考えることができる最高の方法だった CSSレイアウトのベストプラクティス

example layout

)私が念頭に置いていたものを表現するために

それは本質的に2行4列の表ですが、私はテーブルを使用する必要はありません。

私はこれを行うだろうが、それはエレガントまたは最適ではないだろうと私はそれを行うためのクリーンな方法を知りたい、一緒に何かをハック可能性がかなり確信しています。

が、これは明らかではない場合、私に教えてください。

<section class="clearfix"> 
    <figure> 
     <img src="img1.jpg"> 
     <figcaption>Text here</figcaption> 
    </figure> 
    <figure> 
     <img src="img2.jpg"> 
     <figcaption>Text here</figcaption> 
    </figure> 
    <figure> 
     <img src="img3.jpg"> 
     <figcaption>Text here</figcaption> 
    </figure> 
    <figure> 
     <img src="img4.jpg"> 
     <figcaption>Text here</figcaption> 
    </figure> 
</section> 

あなたのCSSは次のようになります。:おかげ

シンプルなレイアウトのために
+0

floatとline-heightを使用してください。 – ggzone

+0

http://jsfiddle.net/NwHM7/28/ – Jawad

+0

ありがとうございました。いくつかの本当に有用な&洞察力のある答え。ユリはちょうど私のニーズによく合った。私は、960gsや1200pxのようなグリッドレイアウトは過度のものだったかもしれないと思います。 – trim

答えて

1

は、左のすべてのコンテナ( "列")を浮遊しclearfixにこれらの列の親コンテナを確認してください

(clearfix as described on linked page) 

figure { 
    float: left; 
} 

詳細な制御と構造については、960.gsのようなグリッドシステムを試してみてください。

この例では、あなたのイメージは、キャプションを持っていると仮定され、そしてHTML5 figure tag and figcaption tagsは、この目的のために非常に適しています。

2

ターゲットaudicenceだ内容に応じて、1200px.comを使用することを検討してください。

は、すでにあなたのテンプレートを持っている場合、私はあなたにこのjsFiddleを作りました。あなたはそこから起動することができます:)

http://jsfiddle.net/aLXby/6/

1

最も重要なことは、セマンティックあなたのHTMLを維持することです。したがって、このレイアウトに最も適したHTMLではなく、そのコンテンツに最も適したHTMLがあります。この場合、マットの示唆(figurefigcaption)です。私はおそらくセクションよりむしろリスト(ulli)を使用するでしょう。

スタイリングに関しては、そのレイアウトを達成するためのさまざまな方法があります。あなたの特定のニーズに応じて(画像の高さは等しいか、幅は等しいか、キャプションはどうすればよいですか?1行か複数行など)浮動小数点を使用すると、display: inline-blockを使用することができます。 display: table/table-row/table-cellを使用できます。

編集:私はこのためのグリッドシステムを使用すると、アニメーションGIFを表示するには、MVCフレームワークを使用してのようなものであると主張していると思います。私が見たすべてのグリッドシステムでは、ユーザーにかなりの負荷をdivとマークアップを破壊するクラスを追加する必要があります。