私は、各エントリの家の画像を持つ家のリストのためのデータベースを持っています。画像は第三者によってアップロードされ、画像はランダムな幅と長さで送信されます。いくつかは正方形です、いくつかは肖像画、いくつかは風景などです.JavaScriptを使用しないと、イメージを正方形のdivに完全に埋め込む最良の方法は何ですか(200px x 200pxなど)。私は、各divの背景イメージとしてイメージを使用し、 "display:cover"を使用すると、ブラウザの互換性の問題があるかどうかは分かりませんが、もっと良い方法があると思います。助言がありますか?正方形のボックス内の可変画像のアスペクト比
答えて
を、代わりにこれを使用これは全員にまともな経験を与える最善の方法です:
div {
background-position: 50% 50%;
background-size: cover;
width: 200px;
height: 200px;
overflow: hidden;
position: relative;
}
img {
position: absolute;
max-width: 100%;
max-height: 100%;
left: calc(-2000px);
}
<div style="background-image: url(http://placehold.it/400x150)">
<img src="http://placehold.it/500x200" />
</div>
基本的には、利用可能な場合スケーリングするためにバックグラウンド・サイズを使用して、calc
をサポートしていないすべてのブラウザに画像を表示します。 2つの鳥、1つの石。
イメージのサイズを明示的に定義しないでください。あなたが使用してそれを中央その後、background-image
を使用したい場合は
max-width: 100%;
max-height: 100%;
OR:互換性は、あなたが気にするものである場合
background-position: center center;
background-size: cover;
これは便利です...もし画像がボックスに_fitするのではなく、image_のボックスに_fillする方法に関する質問ではない。イメージを200x200ピクセルにするための正当な使用例があります。 – somethinghere
'background-image'を使っているのはSEOにとって悪いです[link](http://stackoverflow.com/questions/16542606/background-images-and-seo) – Himanshu
はい、どのようにすれば解決策が有効な解決策になりますかしかし、それは問題を解決しませんでした。上記の私の提案された解決策は_both_です。 – somethinghere
これを行う方法はいくつかありますが、IE以外のすべての主要ブラウザでサポートされているobject-fit: cover
を使用することをお勧めします。 IEとEdgeで動作するソリューションが必要な場合は、how to implement a fallbackをチェックアウトするか、background-size: cover
を使用してフォールバックしてください。
Hotdangety、that snuck up私に。まるでそれがまともな互換性の前に 'オブジェクトフィット'の聞いたことはありません。驚くばかり! – somethinghere
- 1. 正方形のhtml要素内の画像のアスペクト比を維持する
- 2. 画像ビューと画像アスペクト比の差
- 3. ブートストラップ:画像のアスペクト比に応じた高さの等しい画像(画像のアスペクト比に基づく幅)
- 4. UITableViewCell、画像とアスペクト比
- 5. cssトリミング画像アスペクト比
- 6. ffmpeg:スライドショーの画像のアスペクト比
- 7. div幅100%、アスペクト比の画像は?
- 8. 画像のアスペクト比を取得する
- 9. イメージ内の長方形オブジェクトのアスペクト比を再構成する
- 10. フレックスボックス内の画像のアスペクト比をフレックスで保持する方法:1
- 11. 画像のアスペクト比に基づいたサイズ変更
- 12. PHPの正方形画像
- 13. tiffピクセルのアスペクト比を正方形に変更してください
- 14. HTML/IE:ストレッチ画像HTMLウィンドウで、アスペクト比
- 15. 画像+テキストDIVで、アスペクト比を維持
- 16. ボタン画像のアスペクト比を保持する方法
- 17. Frescoでオーバーレイ画像のアスペクト比を保存する方法
- 18. ストーリーボードで画像のアスペクト比を維持する方法は?
- 19. どのようにアスペクト比を失うことなく正方形の画像をスケーリングするのですか(レイアウトが正方形でない場合でも)
- 20. フィルタ矩形:2のアスペクト比下図のように:長方形のアレイから1つのアスペクト比は、
- 21. サイズ変更画像アスペクト比を保持する白線ボーダー
- 22. メッシュ面の三角形のアスペクト比
- 23. 画像のカバーdivの倍率とアスペクト比の保持
- 24. 画像ボックス内にクリック可能なボックスを追加するC#
- 25. 正方形のdiv内の画像の元の比率を維持する方法
- 26. 画像境界は120x120中の画像は、アスペクト比を維持し
- 27. 1つの正方形の画像から長方形のuibutton
- 28. jQueryで背景画像のアスペクト比を取得
- 29. 画像のアスペクト比が容器にある
- 30. 画像のアスペクト比に応じた角度ng-class
さまざまなサイズの画像を使用すると、画像がピクセル化され、HTMLを表示する前に同じサイズになるように画像を処理するバックエンドコードがある方がいいです...考えてみてください – optimus
ドン'background-size:cover;'のブラウザの互換性については心配しないでください( 'display'ではなく、別のものです)。 IE10以降とは別に、非常に幅広くサポートされています(http://caniuse.com/#search=background-size)。その上、古いブラウザでもそれを表示し、途切れてしまいます低品質の経験(より良いブラウザを手に入れるためにそれらを吹かなければならない)。古いブラウザの場合、画像をdiv内に配置して拡大縮小( 'max-height:100%; max-width:100%;')し、 'position:absolute; left:calc(-9999px)'ルールを追加することができます。新しいブラウザで画像を隠す – somethinghere