2017-02-12 7 views
0

画像のグリッドが並んでいるページを持つWebサイトを構築しました。説明のため あなたはhereそれを見つけることができますが、原理的には、次のようになります。応答性のある行ベースのグリッドレイアウト

Flexible arrangement of images

  1. 行の高さがflexibelです。
  2. 行は、画面の幅(余白付き)を塗りつぶします。
  3. 1行あたりの画像数は固定されていないため、ウィンドウサイズによって変更する必要があります。
  4. 画像の寸法は任意です。 Iは、行の高さは、最小値と最大高さとの間にあると、私は場合は、新しい行が作成または削除、列の中に応じて画像を配信することがjQueryのようなJS /内のすべての計算をやっている時点で

必要。ブラウザのサイズ変更イベントでは、値を再計算し、イメージのサイズを調整し、必要に応じて、ある行から別の行にピクチャを移動します。

これはデスクトップ画面でも機能しますが、小さな(モバイルなどの)画面にも対応するレスポンシブデザインに切り替える必要があり、現時点ではjs/jQueryに重く依存する必要はありません。

私はすでにブートストラップとFoundationフレームワークを見つけましたが、それらのすべてがここでは動作しない固定列の合計列を使用しています。

これを実現する方法はありますか、それともCSSのみを使用しているのでしょうか?

答えて

0

あなたは約flexboxを知っていますか?例えば、あなたはアイテムとコンテナがコンテナに基づい幅にすることができます。

https://jsfiddle.net/h9yhds8b/

<div class="container" style="width: 100%; margin: 10px; display: flex;"> 

<div class="item" style="background-color: red; margin: 10px; padding: 10px; flex: 1;"> 
    <h1>Test</h1> 
    <p>This is a lorem ipsum text</p> 
</div> 

<div class="item" style="background-color: red; margin: 10px; padding: 10px; flex: 1;"> 
    <h1>Test</h1> 
    <p>This is a lorem ipsum text</p> 
</div> 

<div class="item" style="background-color: red; margin: 10px; padding: 10px; flex: 1;"> 
    <h1>Test</h1> 
    <p>This is a lorem ipsum text</p> 
</div> 

<div class="item" style="background-color: red; margin: 10px; padding: 10px; flex: 1;"> 
    <h1>Test</h1> 
    <p>This is a lorem ipsum text</p> 
</div> 


</div> 
が、私はそれで何かをやってみました https://css-tricks.com/snippets/css/a-guide-to-flexbox/

+0

ここで詳細については、こちらをご覧ください。しかし、私はまだすべての画像から "完全な"画像サイズを決定し、個々の画像の幅と高さを更新するためにすべての計算を行う必要があります。 1つの行に画像が多すぎたり小さすぎたりすると、手作業で並べ替える必要があります。それとも、多分、私は何か見落としましたか? – seyfe

+0

確かに確かに私はあなたの疑問を間違って読んだと思います。私は以前これを使っていましたが、その時は固定画像を使っていました。だから、すべての画像は同じサイズだった。 – Gijsberts

+0

しかし、あまりにも単純な解決策が好きだっただろう。 – seyfe