HTML要素(body、divなど)の背景画像を取得して、幅と高さ全体を拡大しようとしています。
あまり運がありません。それも可能ですか、それが背景画像である以外に何か他の方法でそれをしなければなりませんか?
私の現在のCSSは:
body {
background-position: left top;
background-image: url(_images/home.jpg);
background-repeat: no-repeat;
}
前もって感謝します。
編集:Gabrielの提案でCSSを維持したくないので、代わりにページのレイアウトを変更しています。しかし、それが最良の答えのように思えるので、そのようにマークしています。
<style>
{ margin: 0; padding: 0; }
html {
background: url('images/yourimage.jpg') no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
</style>
background-size
プロパティを使用します。 http://www.w3.org/TR/css3-background/#the-background-size
要するに、これを試すことができます....
<div data-role="page" style="background:url('backgrnd.png'); background-repeat: no-repeat; background-size: 100% 100%;" >
私はいくつかのCSSとJSを使用している...
<link rel="stylesheet" href="css/jquery.mobile-1.0.1.min.css" />
<script src="js/jquery-1.7.1.min.js"></script>
<script src="js/jquery.mobile-1.0.1.min.js"></script>
そして、それは私にとってはうまく機能しています。
背景画像の拡大が可能かどうかはわかりません。すべてのターゲットブラウザーで不可能または信頼できないことがわかった場合、z-indexを低く設定し、位置を絶対に設定して、その上に他のコンテンツが表示されるようにストレッチimgタグを使用してみてください。
最終的に何をするのか教えてください。
編集:私が提案したのは基本的にガブリエルのリンクにあるものです。だからそれを試してください:)
@PhiLhoの答えを拡張するには、非常に大きな画像(または任意のサイズの画像)をページの中央に配置できます。
{
background-image: url(_images/home.jpg);
background-repeat:no-repeat;
background-position:center;
}
または、画像の背景と一致する背景色の小さな画像を使用することもできます(単色の場合)。これは、目的に合っている場合とそうでない場合があります。
{
background-color: green;
background-image: url(_images/home.jpg);
background-repeat:no-repeat;
background-position:center;
}
画面のサイズ変更中に背景画像を拡大する必要があり、古いバージョンのブラウザとの互換性が必要ない場合は、これで機能します。
body {
background-image: url('../images/image.jpg');
background-repeat: no-repeat;
background-size: cover;
}
私が主に尋ねられた効果を達成するために使用する次のコード:
body {
background-image: url('../images/bg.jpg');
background-repeat: no-repeat;
background-size: 100%;
}
大きな風景画像がある場合、この例では、ポートレートモードで背景のサイズを変更し、上部に表示し、下部に空白を残します。
html, body {
margin: 0;
padding: 0;
min-height: 100%;
}
body {
background-image: url('myimage.jpg');
background-position-x: center;
background-position-y: bottom;
background-repeat: no-repeat;
background-attachment: scroll;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
@media screen and (orientation:portrait) {
body {
background-position-y: top;
-webkit-background-size: contain;
-moz-background-size: contain;
-o-background-size: contain;
background-size: contain;
}
}
background: url(images/bg.jpg) no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
純粋なCSSではできません。他のすべてのコンポーネントの背後にあるページ全体をカバーする画像を持つことは、おそらく最善の策です(上記のソリューションのように見えます)。とにかく、とにかくひどく見える可能性があります。私は、ほとんどの画面解像度をカバーするのに十分な大きさの画像(たとえば、最大1600x1200、それより上)を試すか、ページの幅を制限するか、単にその画像を使用します。