2013-08-05 18 views
9

背景画像がブラウザの画面サイズに反応するページを作成しようとしています。しかし、その人の下にスクロールすると背景イメージが終了するようなイメージの下にコンテンツが必要です。フルページの背景画像と垂直スクロール

それはので、私はそれをより明確にするために画像を作成しようとした説明するのは難しい:

HTML::

<div class='image'></div> 
<div class='content'>Content</div> 

使用絶対

http://i.imgur.com/Z1mSMVi.png

+0

これは役立つかもしれないhttp://stackoverflow.com/questions/3437786/how-to-get-web-page-size-browser-window-si ze-screen-size-in-a-cross-browser-wa – bjan

+0

私は役に立たないで反応性の高い背景イメージを作ろうとしました。私はそれを理解することができませんでした。 –

+0

@bjan CSSでそれを行うには? –

答えて

13

このFiddleをお試しくださいバックグラウンドイメージを画面と同じサイズにするように配置し、後にコンテンツを配置します。topはです:

body { 
    margin:0; 
} 
.image { 
    position:absolute; 
    width:100%; 
    height:100%; 
    background:green; 
    background-image:url('some-image.jpg'); 
    background-size:cover; 
} 
.content { 
    position:absolute; 
    width:100%; 
    top:100%; 
    height: 100px; 
} 
+0

「画像」クラス以外の「コンテンツ」クラスを作成する方法はありますか? –

+0

あなたは単に2つの異なるdivを作ることができます。最初に

、次に
Content
。同じCSSがあなたのために働くでしょう。 –

+0

これは過剰です。何かに 'position:absolute'の必要はありません。私の答えを見る –

1

TB11が示唆するようにposition: absoluteための必要はありません。

ビューポート単位を使用して、またはhtml、body、およびimage要素の高さを設定するだけで、ビューポートの高さを設定することができます。

body { margin: 0; } 
.image { 
    width:100vw; 
    height: 100vh; 
    background: green; 
    background-image: url('some-image.jpg'); 
    background-size: cover; 
} 

あなたがvhを使用できない場合は、あなたが使用できるようにもhtmlと体の要素の高さを設定する必要があります:Demosupport chartからvhを使用して

パーセント - Demo

html, body, .image { height: 100%; } 
body { margin: 0; } 
.image { 
    width:100%; 
    background: green; 
    background-image: url('some-image.jpg'); 
    background-size: cover; 
}