背景画像を異なるdivに設定したいのですが、問題は次のとおりです。
Divの背景全体を埋めるようにbackground-imageを引き伸ばすにはどうすればいいですか?
#div2{
background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png);
height:180px;
width:200px;
border: 1px solid red;
}
追加する
background-size:100% 100%;
背景画像の下にあなたのCSSに。
正確な寸法を指定することもできます。
background-size: 30px 40px;
ここで JSFiddle
あなたが使用することができます:
background-size: cover;
または単に大きな背景画像を使用します。
background: url('../images/teaser.jpg') no-repeat center #eee;
.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%;
(相対位置)親の最初の子としての絶対配置イメージと、それを親サイズに引き伸ばします。
HTML
<div class="selector">
<img src="path.extension" alt="alt text">
<!-- some other content -->
</div>
background-size: cover;
に相当します。これを動的に実現するには、containsメソッドの代わり(下記参照)を使用する必要があります。トリミングした画像を中央に配置する必要がある場合は、JavaScriptを動的に使用する必要があります。 jQueryを使う:
$('.selector img').each(function(){
$(this).css({
"left": "50%",
"margin-left": "-"+( $(this).width()/2 )+"px",
"top": "50%",
"margin-top": "-"+( $(this).height()/2 )+"px"
});
});
実用例
background-size: contain;
に相当します。これは少しトリッキーかもしれません - 親をオーバーフローさせるあなたの背景の寸法は100%に設定されたCSSを持っているでしょう他のものを自動にするでしょう。 実用例
.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: auto;
/* -- OR -- */
/* width: auto;
height: 100%; */
}
background-size: 100% 100%;
に相当します。.selector img{
position: absolute; top:0; left: 0;
width: 100%;
height: 100%;
}
PS:cover/containsと同等のことを "昔の"方法で完全に動的に行うため(オーバーフロー/比率を気にする必要はありません)、比率を検出するにはjavascriptを使用する必要があります。あなたのために、説明されているように寸法を設定してください...
これにはCSS3のbackground-size
プロパティを使うことができます。このように書く:
#div2{
background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png);
-moz-background-size:100% 100%;
-webkit-background-size:100% 100%;
background-size:100% 100%;
height:180px;
width:200px;
border: 1px solid red;
}
これをチェックしてください。 http://jsfiddle.net/qdzaw/1/
あなたは付け加えられます:
#div2{
background-image:url(http://s7.static.hootsuite.com/3-0-48/images/themes/classic/streams/message-gradient.png);
background-size: 100% 100%;
height:180px;
width:200px;
border: 1px solid red;
}
あなたはここでそれについてもっと読むことができます: css3 background-size
body{
margin:0;
background:url('image.png') no-repeat 50% 50% fixed;
background-size: cover;
}
プロパティcssを使用して:
background-size: cover;
使用:背景サイズ:100%100%。背景画像をdivサイズに合わせて作成します。
縦横比を維持するには、background-size: 100% auto;
を使用します。
div {
background-image: url('image.jpg');
background-size: 100% auto;
width: 150px;
height: 300px;
}
このようなことを試してください:
div {
background-image: url(../img/picture1.jpg);
height: 30em;
background-repeat: no-repeat;
width: 100%;
background-position: center;
}