3

1ページにたくさんの画像を表示する必要があります。画像のサイズは異なり、幅が非常に広いものと非常に薄いものがあります。全部固定幅・固定高さの容器に入れたいです。

画像を配置するロジックは次のようになります。画像がコンテナよりも小さい場合は、アスペクト比が維持されるように最大サイズに拡大し、コンテナの中央に配置します。画像が大きい場合は、アスペクト比を維持したまま縮小してください。

いくつかの例:コンテナが150x150で、画像のサイズが100x50であるとします。この場合、画像は150x75まで拡大する必要があります。100x300のサイズの画像がある場合、画像は50x150に縮小する必要があります。

これはjavascriptで簡単に行うことができますが、可能であればそれを避けたいと思います。CSSだけでこれを達成する方法があるかどうか疑問に思います。Chrome、Firefox、Safariの最新バージョンで動作する限り、CSS3のみのソリューション、またはwebkit / firefox固有のディレクティブを使用できます(選択の余地がない場合は、IEのフォールバックを使用します)。

編集:もちろん、max-heightとmax-widthについて知っています。問題は、max-heightとmax-widthの両方を150に設定すると、必要に応じて画像が拡大されないことです。

4

2 に答える 2

5

を使用しないでください<img>。代わりに、次のbackground-imageスタイルを使用してください。

background: transparent url('path/to/image.png') no-repeat scroll center center;
background-size: contain;

background-size魔法をかけ、画像を拡大または縮小して、コンテナ内にぴったりと収まるようにします。

于 2012-08-01T22:01:25.180 に答える
0

このフィドルをチェックしてくださいhttp://jsfiddle.net/demchak_alex/FazvX/3/

これは、個々の画像にクラスを適用できる場合にのみ機能しますが

編集:

背景画像を使用できる場合は、このフィドルをチェックしてくださいhttp://jsfiddle.net/demchak_alex/FazvX/4/

「クラスが追加された画像のみ」が上で機能し、背景画像の使用が下で機能します。

于 2012-08-01T21:54:16.293 に答える