Hier ist die Lösung, die ich mir endlich ausgedacht habe, als ich ein div als Container für einen dynamischen Hintergrund verwendet habe.
- Entfernen Sie die
z-index
für Nicht-Hintergrund-Zwecke.
- Entfernen Sie
left
oder right
für eine Säule voller Höhe.
- Entfernen Sie
top
oder bottom
für eine Reihe voller Breite.
BEARBEITEN 1: CSS unten wurde bearbeitet, da es in FF und Chrome nicht korrekt angezeigt wurde. verschoben position:relative
, um im HTML zu sein und den Body auf height:100%
anstelle von zu setzen min-height:100%
.
BEARBEITEN 2: Zusätzliche Kommentare zu CSS hinzugefügt. Einige weitere Anweisungen wurden hinzugefügt.
Das CSS:
html{
min-height:100%;/* make sure it is at least as tall as the viewport */
position:relative;
}
body{
height:100%; /* force the BODY element to match the height of the HTML element */
}
#cloud-container{
position:absolute;
top:0;
bottom:0;
left:0;
right:0;
overflow:hidden;
z-index:-1; /* Remove this line if it's not going to be a background! */
}
Das HTML:
<!doctype html>
<html>
<body>
<div id="cloud-container"></div>
</body>
</html>
Warum?
html{min-height:100%;position:relative;}
Ohne dies wird der Cloud-Container DIV aus dem Layoutkontext des HTML entfernt. position: relative
stellt sicher, dass der DIV beim Zeichnen im HTML-Feld bleibt, sodass er bottom:0
sich auf den unteren Rand des HTML-Felds bezieht. Sie können height:100%
den Cloud-Container auch verwenden, da er sich jetzt auf die Höhe des HTML-Tags und nicht auf das Ansichtsfenster bezieht.
html
Element eine Mindesthöhe (und nicht nur eine Höhe) verwenden müssen. Warum ist das so?height
heißt, du bist so groß; nicht mehr und nicht weniger. ' Dies bedeutet, dass es sich um die Höhe des Ansichtsfensters handelt. Wir möchten, dass es mindestens so hoch wie das Ansichtsfenster oder höher ist.min-height
macht das schön.<html>
und das Positionieren im Ansichtsfenster zwei getrennte Dinge waren. Danke dir!Mit HTML5 ist es am einfachsten, dies zu tun
height: 100vh
. Wobei 'vh' für die Höhe des Ansichtsfensters des Browserfensters steht. Reagiert auf die Größenänderung von Browsern und Mobilgeräten.quelle
vw
.Ich hatte ein ähnliches Problem und die Lösung bestand darin, dies zu tun:
Ich wollte ein seitenzentriertes Div mit einer Höhe von 100% der Seitenhöhe, daher war meine Gesamtlösung:
Möglicherweise müssen Sie ein übergeordnetes Element (oder einfach 'body') erstellen
position: relative;
quelle
cloud-container
?Sie können mit Faux Columns betrügen oder Sie können einige CSS-Tricks verwenden
quelle
Es ist einfach, eine Tabelle zu verwenden:
Als DIV eingeführt wurde, hatten die Leute solche Angst vor Tischen, dass der arme DIV zum metaphorischen Hammer wurde.
quelle
Verwenden Sie die absolute Position. Beachten Sie, dass wir es im Allgemeinen nicht gewohnt sind, Positionsabsolut zu verwenden, was das manuelle Auslegen von Dingen oder schwebende Dialoge erfordert. Dies wird automatisch verlängert, wenn Sie die Größe des Fensters oder des Inhalts ändern. Ich glaube, dass dies den Standardmodus erfordert, aber in IE6 und höher funktioniert.
Ersetzen Sie einfach das div durch die ID 'thecontent' durch Ihren Inhalt (die angegebene Höhe dient nur zur Veranschaulichung, Sie müssen keine Höhe für den tatsächlichen Inhalt angeben.
Dies funktioniert so, dass das äußere Div als Referenzpunkt für die Navigationsleiste fungiert. Das äußere Div wird durch den Inhalt des 'Content'-Div gestreckt. Die Navigationsleiste verwendet die absolute Positionierung, um sich auf die Höhe des übergeordneten Elements auszudehnen. Für die horizontale Ausrichtung versetzen wir den Inhaltsbereich selbst um die gleiche Breite der Navigationsleiste.
Dies wird mit dem CSS3-Flexbox-Modell erheblich vereinfacht, ist jedoch im IE noch nicht verfügbar und weist einige Besonderheiten auf.
quelle
Wenn Sie auf modernere Browser abzielen, kann das Leben sehr einfach sein. Versuchen:
Wenn Sie es bei 50% der Seite benötigen, ersetzen Sie 100 durch 50.
quelle
Ich bin auf dasselbe Problem gestoßen wie Sie. Ich wollte ein machen
DIV
Hintergrund machen, warum, weil es einfach ist, div durch Javascript zu manipulieren. Sowieso drei Dinge, die ich in der CSS für diese Div getan habe.CSS:
quelle
Ich möchte die gesamte Webseite abdecken, bevor ich ein modales Popup auffordere. Ich habe viele Methoden mit CSS und Javascript ausprobiert, aber keine davon hilft, bis ich die folgende Lösung gefunden habe. Es funktioniert bei mir, ich hoffe es hilft dir auch.
Viel Glück ;-)
quelle
quelle
quelle
Einfach, wickeln Sie es einfach in eine Tabelle div ...
Der HTML:
Das CSS:
quelle