2013-08-05 10 views
9

Ich versuche, eine Seite zu erstellen, wo das Hintergrundbild Ihres Browsers Bildschirmgröße reagiert. Ich benötige jedoch Inhalte unter diesem Bild, so dass das Hintergrundbild endet, wenn die Person nach unten scrollt.Voll Seite Hintergrundbild mit vertikalem Bildlauf

Es ist schwer zu erklären, so habe ich versucht, ein Bild zu erzeugen, um es deutlicher zu machen:

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

+0

Dies könnte helfen http://stackoverflow.com/questions/3437786/how-to-get-web-page-size-browser-window-si ze-screen-size-in-a-cross-browser-wa – bjan

+0

Ich habe versucht, das responsive Hintergrundbild ohne Erfolg zu machen. Ich konnte es nicht herausfinden. –

+0

@bjan Irgendein Weg, es mit CSS zu tun? –

Antwort

13

Versuchen Sie, diese Fiddle:

HTML:

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

Verwenden absolute Positionierung, um das Hintergrundbild die gleiche Größe wie der Bildschirm, und legen Sie den Inhalt nach, mit einem top von 100%:

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

Gibt es eine Möglichkeit, die Klasse 'content' außerhalb der Klasse 'image' zu platzieren? –

+0

können Sie einfach zwei verschiedene Div. zuerst

und dann
Content
. Das gleiche CSS würde für Sie arbeiten. –

+0

Das ist Overkill. Es gibt keine Notwendigkeit für "Position: absolut" auf irgendetwas. Siehe meine Antwort –

1

Es besteht keine Notwendigkeit für position: absolute als TB11 vermuten lässt.

Sie können einfach die Höhe des Ansichtsfenster stellen Sie die Höhe für die html, Körper und Bildelemente unter Verwendung von Darstellungseinheiten oder durch Einstellung.

Mit vh-Demo und support chart:

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

Wenn Sie nicht vh verwenden können, müssen Sie die Höhe der HTML-und Körperelemente als auch gesetzt haben, so dass Sie verwenden können, Prozente - Demo:

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