2698 Stimmen

Wie man ein div 100% Höhe des Browser-Fensters machen

Ich habe ein Layout mit zwei Spalten - eine linke div und ein Recht div .

Das Recht div hat eine graue background-color und ich brauche es, um vertikal zu erweitern, je nach der Höhe des Browser-Fensters des Benutzers. Im Moment ist die background-color endet am letzten Stück des Inhalts in diesem div .

Ich habe versucht height:100% , min-height:100%; , usw.

3331voto

James Donnelly Punkte 122040

Es gibt eine Reihe von CSS 3-Messeinheiten:

Ansichtsportal-Prozentsatz (oder Viewport-Relativ) Längen

Was sind Viewport-Percentage Lengths?

Aus der oben verlinkten W3-Kandidatenempfehlung:

Die prozentualen Längen der Ansichtsfenster beziehen sich auf die Größe des ursprünglich enthaltenen Blocks. Wenn die Höhe oder Breite des anfänglich enthaltenen Blocks geändert wird, werden sie entsprechend skaliert.

Diese Einheiten sind vh (Höhe des Ansichtsfensters), vw (Breite des Ansichtsfensters), vmin (Mindestlänge des Ansichtsfensters) und vmax (maximale Länge des Ansichtsfensters).

Wie kann dies verwendet werden, um eine Trennlinie die Höhe des Browsers zu füllen?

Für diese Frage können wir Folgendes verwenden vh : 1vh ist gleich 1 % der Höhe des Ansichtsfensters. Das heißt, dass 100vh ist gleich der Höhe des Browserfensters, unabhängig davon, wo sich das Element im DOM-Baum befindet:

HTML

<div></div>

CSS

div {
    height: 100vh;
}

Das ist buchstäblich alles, was nötig ist. Hier ist ein JSFiddle-Beispiel davon in Gebrauch.

Welche Browser unterstützen diese neuen Einheiten?

Dies wird derzeit von allen aktuellen Browsern unterstützt, mit Ausnahme von Opera Mini. Ausprobieren Kann ich die... für weitere Unterstützung.

Wie kann dies mit mehreren Spalten verwendet werden?

Im Falle der vorliegenden Frage, die eine linke und eine rechte Trennlinie aufweist, ist hier eine JSFiddle-Beispiel mit einem zweispaltigen Layout, das sowohl vh y vw .

Wie ist 100vh verschieden von 100% ?

Nehmen Sie zum Beispiel dieses Layout:

<body style="height: 100%">
    <div style="height: 200px">
        <p style="height: 100%; display: block;">Hello, world!</p>
    </div>
</body>

El p Tag ist hier auf 100% Höhe eingestellt, aber da der darin enthaltene div 200 Pixel Höhe hat, werden 100 % von 200 Pixel zu 200 Pixel, no 100% der body Höhe. Verwendung von 100vh bedeutet stattdessen, dass die p Tag wird 100% der Höhe des body unabhängig von der div Höhe. Schauen Sie sich das an zu JSFiddle um den Unterschied leicht zu erkennen!

616voto

Ariona Rian Punkte 8682

Wenn Sie die Höhe eines <div> oder jedes andere Element, sollten Sie die Höhe von <body> y <html> auf 100 % zu erhöhen. Dann können Sie die Höhe des Elements mit 100% festlegen :)

Hier ist ein Beispiel:

body, html {
  height: 100%;
}

#right {
  height: 100%;
}

316voto

Tinister Punkte 10607

Wenn Sie in der Lage sind, Ihre Elemente absolut zu positionieren,

position: absolute;
top: 0;
bottom: 0;

würde es tun.

151voto

MrGeek Punkte 21062

Sie können die Einheit view-port in CSS verwenden:

HTML:

<div id="my-div">Hello World!</div>

CSS:

#my-div {
    height: 100vh; /* vh stands for view-port height, 1vh is 1% of screen height */
}

145voto

Alireza Punkte 92209

Sie können verwenden vh die in diesem Fall relativ zu 1% der Höhe des Ansichtsfensters...

Das heißt, wenn Sie die Höhe abdecken wollen, verwenden Sie einfach 100vh .

Sehen Sie sich das folgende Bild an, das ich hier für Sie gezeichnet habe:

How to make a div 100% height of the browser window?

Probieren Sie den Ausschnitt aus, den ich für Sie erstellt habe:

.left {
  height: 100vh;
  width: 50%;
  background-color: grey;
  float: left;
}

.right {
  height: 100vh;
  width: 50%;
  background-color: red;
  float: right;
}

<div class="left"></div>
<div class="right"></div>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X