2016-04-02 6 views
1

私は、デスクトップビューとモバイルビューの両方に、それぞれ高さが固定された以下のような画像しかない構造を持っています。モバイルビュー画像において異なるデスクトップとモバイルビューの画像のサイズ変更

structure of images

延伸出てきます。 私は画像が上、下、左、右のいずれかから切り取られ、私の場合は欲しくない解決法をいくつか適用しました。 どのような視点で画像が伸びないように進めるべきですか?

答えて

2

、あなたは常にそれを引き伸ばすことなく、かつ持つ要素を埋める画像を作るbackground-image/background-sizeを使用して、この

background: url(...) no-repeat;  /* the shorthand property */ 
background-size: cover; 
background-position: center center; 

cover値のようにそれを設定することができます(あなたのイメージのように)固定レイアウトにしたいと仮定すると、 background-positionあなたは画像を中央に配置するか、左、右、下は、トップが揃っ制御することができます

div { 
 
    height: 200px; 
 
    width: 500px; 
 
    background: url(http://lorempixel.com/300/400/animals/4) no-repeat; 
 
    background-size: cover; 
 
    background-position: center center; 
 
    border: 1px solid black; 
 
} 
 
div ~ div { 
 
    height: 200px; 
 
    width: 200px; 
 
} 
 
div ~ div ~ div { 
 
    height: 500px; 
 
    width: 200px; 
 
    background-position: left center; 
 
}
<div></div> 
 
<div></div> 
 
<div></div>

クロップしたくない場合は、代わりにbackground-size: containを使用できます。

div { 
 
    height: 200px; 
 
    width: 500px; 
 
    background: url(http://lorempixel.com/300/400/animals/4) no-repeat; 
 
    background-size: contain; 
 
    background-position: left bottom; 
 
    border: 1px solid black; 
 
} 
 
div ~ div { 
 
    height: 200px; 
 
    width: 200px; 
 
} 
 
div ~ div ~ div { 
 
    height: 500px; 
 
    width: 200px; 
 
}
<div></div> 
 
<div></div> 
 
<div></div>

更新背景サイズを有するimg

html, body { 
 
    margin: 0; 
 
    height: 100%; 
 
} 
 
img { 
 
    height: 40%; 
 
    width: auto; 
 
}
<img src="http://lorempixel.com/200/400/animals/4" alt=""> 
 
<img src="http://lorempixel.com/300/300/animals/4" alt=""> 
 
<img src="http://lorempixel.com/400/200/animals/4" alt="">

+0

第一の溶液に(本体に対して)%の高さを使用して、コメントに基づきます。カバーはかなり良いです - それは画像を切り抜くことだけです。 余分なスペースが表示されるため、containsを使用できません。 ありがとうございます、これのための他の解決策がありますか? – pdjinn

+0

@pdjinn次に、特定のレイアウトに合わせてイメージを拡大、縮小、拡大するなど、どのようにしてほしいかわからないのですか?もしそうでなければ、固定高さの 'img'要素を与え、widthをautoに設定するだけです。 – LGSon

+0

これは、固定された高さと幅でそれをやっていた方法です:100%はレイアウトが反応するので画像を伸ばします。私が複数の画像を使って適用できる解決法はありますか? width:autoは再び余分なスペースを表示します – pdjinn