18

私は次のCSSを持っています:

.mod.left {
background-image: url("http://www.myimage.jpg");
display: block;
height: 160px;
overflow: hidden;
width: 175px;
}

これはこのHTMLに対応します。

<div class="mod left"></div>

その結果、この混乱が発生します。

ここに画像の説明を入力してください

css3 background-sizeを使用する場合:175px 160px; アスペクト比が実際に台無しになり、次のような混乱が発生します。

ここに画像の説明を入力してください

divに合わせて画像を引き伸ばす方法はありますか?しかし、アスペクト比が維持される方法では?オートクロップが欲しいです。

4

5 に答える 5

36

これは機能するはずです(をサポートするブラウザでbackground-size):

background-size: 175px auto;

また、試すことができます:

background-size: cover;

または:

background-size: contain;

MDCには良い説明があります。

于 2011-09-12T22:59:37.980 に答える
5

背景画像である必要がありますか?

img{
width:300px;
height:auto;
}


<img src="your-photo.png">
于 2011-09-12T22:53:04.173 に答える
3

次の値でbackground-sizeプロパティを使用できます。contain

background-size: contain;

これが実際の例です: https ://jsfiddle.net/gusrodriguez/auuk97hf/1/

上記の例では、ボディの背景に引き伸ばされた画像があります。また、任意のサイズの2つのdivと、アスペクト比に適合して維持する別の画像があります。

于 2016-12-02T13:50:03.733 に答える
2

CSSObject-fitプロパティを使用できます。

{
 height: 160px;
 width: 175px;
 object-fit: cover;
}

Object-fitには、次の値を指定できます。

含む、カバーする、塗りつぶす、なし、スケールダウン。詳細については、上記のリンクを参照してください。

于 2018-03-31T03:28:21.187 に答える
1

背景ではなくimgを使用している場合、この方法を見つけました。

        min-width: 100%;
        max-width: 100%;
        min-height: 100%;
        max-height: 100%;
        object-fit: contain;
于 2020-04-26T13:56:43.503 に答える