Wordpressとユーザーがアップロードした画像を使用しています。Bootstrapを使用してレスポンシブ画像ギャラリーを構築しようとしていますが、問題が発生しています。
Picture.png http://img339.imageshack.us/img339/6838/picturehq.png jsfiddle でも見つけることができます(複数列に切り替わるのに十分な大きさの出力ウィンドウを設定してください)
現実世界の課題のいくつかと私の制約のいくつか:
- 画像がすべて同じサイズになるわけではありません
- 画像はすべて同じサイズである必要はありません
- ギャラリーはレスポンシブである必要があります(画像は縮小/拡大でき、2、3、4列から変更できます)
- キャプションは任意の長さにすることができ、自動切り捨て/非表示などにする必要があります。
- 画像に適切なアスペクト比を持たせたい、たとえば
width:100%; height:100%
- キャプションはどういうわけか並んでいるはずです
私が試したこと
レスポンシブデザインの前に画像ギャラリーを作成するために使用したトリッキーな方法の1つは、Wordpressに2つの画像サイズを作成させることでした。ギャラリーのサムネイルになります。ギャラリーを生成するとき、境界を超えていないかどうかを確認し、その画像をサムネイルに使用します。もう1つの方法は、必要なサイズに近い画像を使用し、その画像を、background-url
位置がに設定された包含要素のとして設定することcenter/center
です。これは固定幅のデザインには最適ですが、レスポンシブにはうまく機能しません。:)
さらに、レスポンシブデザイン/ cssで私が知る限り、背景画像のスケールを設定する方法はありません。また、CSSを介したセット<img>
ではなく、タグを使用して画像をコード化する方が意味的に正確であるように思われます。<div>
background-image
レスポンシブデザインがないと、列数も固定される可能性があるため、clear:left
n番目ごとに画像を実行して、奇妙な折り返しが発生しないようにすることができます。ただし、レスポンシブデザインでは、列数が2、3、4などから変更される場合があります。
また、レスポンシブデザインがなければ、Javascriptを使用して画像/サムネイルコンテナをループし、それらの高さを標準化することができます。レスポンシブデザインでこれを行うことは不可能ではありませんが、高さが最初にパーセンテージとして設定され、すべてのリソースが読み込まれるまで正確でない可能性があるため、ページが完全に読み込まれるのを待つ必要があります。次に、ウィンドウのサイズ変更や向きの変更で何が起こるかを心配する必要があります。これはハックのようであり、それを行う正しい方法ではありません。
また、要素のmin-height
領域を設定し、画像を含むをに設定し、それもに設定してみました。結果は良くなりますが、それでも素晴らしいものではありません。.thumbnail
<a>
display:block
min-height
3列: Picture.png http://img818.imageshack.us/img818/9472/picturemk.png
4列:
写真1.pnghttp://img525.imageshack.us/img525/706/picture1uh.png