Ich verwende einen radialen Farbverlauf als Hintergrund auf meiner Webseite, wie folgt:
background-image: -webkit-gradient(radial, 100% 100%, 10, 90% 90%, 600, from(#ccc), to(#000));
Es funktioniert, aber wenn der Inhalt nicht die gesamte Seite ausfüllt, wird der Farbverlauf abgeschnitten. Wie kann ich dafür sorgen, dass das <body>
Element immer die gesamte Seite ausfüllt?
body { width: 100%; height: 100%; }
funktioniert nicht?body { width: 100%; height: 100%; }
funktioniert nicht. Ich denke, ich muss es auch anwenden<html>
.Antworten:
quelle
html { height: 100%; }
tatsächlich ist.html { height: 100%; }
nochbody { height: 100%; }
genug für mich (Opera als Test eingeschlossen) Was am besten funktionierte, war diehtml, body { min-height: 100%; }
Verwendung von Höhe anstelle von Min-Höhe ließ meinen Hintergrund weiß ohne die Hintergrundfarbe, die angewendet wurde, als ich einige zusammenklappbare Divs in der Mitte meiner Seite erweiterte.min-height
das behoben.100%
zu100vh
.Auf unserer Website haben wir Seiten, auf denen der Inhalt statisch ist, und Seiten, auf denen er mit AJAX geladen wird. Auf einer Seite (einer Suchseite) gab es Fälle, in denen die AJAX-Ergebnisse die Seite mehr als ausfüllten, und Fälle, in denen keine Ergebnisse zurückgegeben wurden. Damit das Hintergrundbild in allen Fällen die Seite ausfüllt, mussten wir das folgende CSS anwenden:
height
für diehtml
undmin-height
für diebody
.quelle
width: 100%;
.margin: 0;
genug ist , welche Einheit Sie verwenden Null keine Notwendigkeit zu gebenDa keine der anderen Antworten für mich funktionierte, habe ich beschlossen, dies als Antwort für andere zu veröffentlichen, die nach einer Lösung suchen, die ebenfalls das gleiche Problem gefunden hat. Sowohl das HTML als auch der Körper mussten eingestellt werden,
min-height
oder der Farbverlauf würde die Körpergröße nicht ausfüllen.Ich fand Stephen Ps Kommentar , um die richtige Antwort darauf zu geben.
Wenn ich die HTML-Höhe (oder die HTML- und Körpergröße) auf 100% eingestellt habe,
quelle
Ich musste 100% sowohl auf HTML als auch auf den Körper anwenden.
quelle
Versuchen Sie, Maßeinheiten für Ansichtsfenster (vh, vm) auf Körperebene zu verwenden
html, body {margin: 0; Polsterung: 0; } body {min-height: 100vh; }}
Verwenden Sie vh-Einheiten für horizontale Ränder, Auffüllungen und Ränder des Körpers und subtrahieren Sie sie vom Wert für die Mindesthöhe.
Ich habe bizarre Ergebnisse mit vh, vm-Einheiten für Elemente im Körper erzielt, insbesondere bei der Größenänderung.
quelle
Ich denke, der weitgehend richtige Weg ist, CSS auf Folgendes zu setzen:
quelle
Ich habe alle oben genannten Lösungen ausprobiert und diskreditiere keine von ihnen, aber in meinem Fall haben sie nicht funktioniert.
Für mich wurde das Problem verursacht, weil das
<header>
Tag einemargin-top
von 5em und das<footer>
Rand-Bottom von 5em hatte. Ich entfernte sie und legte stattdessen einigepadding
(oben bzw. unten). Ich bin mir nicht sicher, ob das Ersetzen des Randes eine ideale Lösung für das Problem war, aber der Punkt ist, dass Sie, wenn das erste und das letzte Element in Ihrem<body>
Rand einige Ränder haben, möglicherweise einen Blick darauf werfen und diese entfernen möchten.Meine
html
undbody
Tags hatten die folgenden Stilequelle
Wenn Sie haben eine Grenze oder Polsterung, dann ist die Lösung
erzeugt das unvollständige Rendering
Um es bei Vorhandensein eines Randes oder einer Polsterung richtig zu machen
Verwenden Sie stattdessen
wie Martin betonte, obwohl
overflow: hidden
nicht benötigt wird.(2018 - getestet mit Chrome 69 und IE 11)
quelle
body
Tag einen Rahmen hinzugefügt haben . Ohne diesen Randbody
füllt das genau 100% des Ansichtsfensters aus. Sie können dies beispielsweise mit einer Hintergrundfarbe sehen. Die richtige Antwort auf diese Frage, die vor 7 Jahren angenommen wurde, ist immer noch gültig.Das funktioniert bei mir:
quelle