Was ist der beste Weg, um ein Element mit einer Mindesthöhe von 100% in einer Vielzahl von Browsern zu erstellen?
Insbesondere wenn Sie ein Layout mit einem header
und footer
von fest haben height
,
Wie füllt man den mittleren Inhaltsteil 100%
des Zwischenraums mit footer
dem unten angeordneten?
min-height: 100vh;
. Dadurch wird die Höhe gleich oder größer als die Größe des Bildschirmsvh: vertical height
. Für mehr: w3schools.com/cssref/css_units.asp .vh
steht fürviewport height
und so können Sie auchvw
fürviewport width
undvmin
für jede Dimension die kleinste verwenden ,viewport minimum
.Antworten:
Ich verwende das folgende: CSS-Layout - 100% Höhe
Funktioniert gut für mich.
quelle
So legen Sie eine benutzerdefinierte Höhe fest, die an einer bestimmten Stelle festgelegt ist:
quelle
Hier ist eine andere Lösung, die auf CSS-Einheiten basiert
vh
, oderviewpoint height
für Details besuchen Sie diese . Es basiert auf dieser Lösung , die stattdessen Flex verwendet.Weitere Informationen finden Sie hier:
quelle
Die Antwort von kleolb02 sieht ziemlich gut aus. Ein anderer Weg wäre eine Kombination aus der klebrigen Fußzeile und dem Hack mit minimaler Höhe
quelle
Um
min-height
mit Prozentsätzen korrekt zu arbeiten und gleichzeitig den übergeordneten Knoten zu erbenmin-height
, besteht der Trick darin, die Höhe des übergeordneten Knotens auf festzulegen,1px
und dannmin-height
funktioniert die Höhe des untergeordneten Knotens korrekt.Demoseite
quelle
Eine reine
CSS
Lösung (#content { min-height: 100%; }
) funktioniert in vielen Fällen, aber nicht in allen - insbesondere in IE6 und IE7.Leider müssen Sie auf eine JavaScript-Lösung zurückgreifen, um das gewünschte Verhalten zu erzielen. Dies kann erreicht werden, indem die gewünschte Höhe für Ihren Inhalt berechnet
<div>
und als CSS-Eigenschaft in einer Funktion festgelegt wird:Sie können diese Funktion dann als Handler für
onLoad
undonResize
Ereignisse festlegen :quelle
Ich stimme Levik zu, da der übergeordnete Container auf 100% eingestellt ist, wenn Sie Seitenleisten haben und möchten, dass diese den Raum füllen, um mit der Fußzeile übereinzustimmen. Sie können sie nicht auf 100% einstellen, da sie ebenfalls 100 Prozent der übergeordneten Höhe betragen bedeutet, dass die Fußzeile bei Verwendung der Löschfunktion nach unten gedrückt wird.
Stellen Sie sich das so vor, wenn Ihre Kopfzeile eine Höhe von 50 Pixel und Ihre Fußzeile eine Höhe von 50 Pixel hat und der Inhalt nur automatisch an den verbleibenden Platz angepasst wird, z. B. 100 Pixel, und der Seitencontainer 100% dieses Werts beträgt, beträgt seine Höhe 200 Pixel. Wenn Sie dann die Seitenleistenhöhe auf 100% einstellen, beträgt sie 200 Pixel, obwohl sie genau zwischen Kopf- und Fußzeile passen soll. Stattdessen ist es 50px + 200px + 50px, sodass die Seite jetzt 300px groß ist, da die Seitenleisten auf die gleiche Höhe wie der Seitencontainer eingestellt sind. Der Inhalt der Seite enthält einen großen Leerraum.
Ich verwende Internet Explorer 9 und dies ist der Effekt, den ich bei Verwendung dieser 100% -Methode bekomme. Ich habe es nicht in anderen Browsern versucht und gehe davon aus, dass es in einigen anderen Optionen funktioniert. aber es wird nicht universell sein.
quelle
Zuerst sollten Sie ein
div
withid='footer'
nach Ihremcontent
div erstellen und dann einfach dies tun.Ihr HTML sollte folgendermaßen aussehen:
Und das CSS:
quelle
Wahrscheinlich die kürzeste Lösung (funktioniert nur in modernen Browsern)
Dieses kleine Stück CSS macht
"the middle content part fill 100% of the space in between with the footer fixed to the bottom"
:Die einzige Voraussetzung ist, dass Sie eine Fußzeile mit fester Höhe benötigen.
Zum Beispiel für dieses Layout:
Sie benötigen dieses CSS:
quelle
Versuche dies:
Das
div
Element unter dem Inhalt div muss habenclear:both
.quelle
Sie können dies versuchen: http://www.monkey-business.biz/88/horizontal-zentriertes-100-hohe-css-layout/ Das ist 100% Höhe und horizontale Mitte.
quelle
Teile einfach, was ich benutzt habe und es funktioniert gut
quelle
Wie in der Antwort von Afshin Mehrabani erwähnt, sollten Sie die Körpergröße und die Höhe von HTML auf 100% einstellen. Um die Fußzeile dorthin zu bringen, berechnen Sie die Höhe des Wrappers:
quelle