最新のCSS3(将来に推奨され、おそらく最高のソリューション)
.selector{
background-size: cover;
/* stretches background WITHOUT deformation so it would fill the background space,
it may crop the image if the image's dimensions are in different ratio,
than the element dimensions. */
}
マックス。クロップも変形もなしで ストレッチ(背景を埋められない場合があります):background-size: contain;
絶対ストレッチを強制します(変形を引き起こす可能性がありますが、クロップはありません): background-size: 100% 100%;
「古い」CSS「常に機能する」方法
(相対的に配置された)親の最初の子としての画像の絶対配置と親サイズへの拡大。
HTML
<div class="selector">
<img src="path.extension" alt="alt text">
<!-- some other content -->
</div>
CSS3に相当background-size: cover;
:
これを動的に実現するには、containメソッドの反対の方法(以下を参照)を使用する必要があり、トリミングされた画像を中央に配置する必要がある場合は、JavaScriptを使用して動的に行う必要があります(jQueryを使用するなど)。
$('.selector img').each(function(){
$(this).css({
"left": "50%",
"margin-left": "-"+( $(this).width()/2 )+"px",
"top": "50%",
"margin-top": "-"+( $(this).height()/2 )+"px"
});
});
実用的な例:
CSS3に相当background-size: contain;
:
これは少しトリッキーになる可能性があります-親をオーバーフローする背景の寸法はCSSを100%に設定し、もう一方は自動に設定します。
実用的な例:
.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: auto;
/* -- OR -- */
/* width: auto;
height: 100%; */
}
CSS3に相当background-size: 100% 100%;
:
.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: 100%;
}
PS:「古い」方法で完全に動的にカバー/封じ込めを行うには(オーバーフロー/比率を気にする必要がないため)、JavaScriptを使用して比率を検出し、説明どおりに寸法を設定する必要があります。 ..