In dem unten gezeigten Markup versuche ich, den Inhaltsbereich bis zum Ende der Seite zu strecken, aber er wird nur gedehnt, wenn Inhalt angezeigt werden soll. Der Grund, warum ich dies tun möchte, ist, dass der vertikale Rand immer noch auf der Seite angezeigt wird, auch wenn kein Inhalt angezeigt werden soll.
Hier ist mein HTML :
<body>
<form id="form1">
<div id="header">
<a title="Home" href="index.html" />
</div>
<div id="menuwrapper">
<div id="menu">
</div>
</div>
<div id="content">
</div>
Und mein CSS :
body {
font-family: Trebuchet MS, Verdana, MS Sans Serif;
font-size:0.9em;
margin:0;
padding:0;
}
div#header {
width: 100%;
height: 100px;
}
#header a {
background-position: 100px 30px;
background: transparent url(site-style-images/sitelogo.jpg) no-repeat fixed 100px 30px;
height: 80px;
display: block;
}
#header, #menuwrapper {
background-repeat: repeat;
background-image: url(site-style-images/darkblue_background_color.jpg);
}
#menu #menuwrapper {
height:25px;
}
div#menuwrapper {
width:100%
}
#menu, #content {
width:1024px;
margin: 0 auto;
}
div#menu {
height: 25px;
background-color:#50657a;
}
Antworten:
Ihr Problem ist nicht, dass sich das div nicht auf 100% Höhe befindet, sondern dass sich der Container um es herum nicht befindet. Dies hilft in dem Browser, von dem ich vermute, dass Sie ihn verwenden:
Möglicherweise müssen Sie auch das Auffüllen und die Ränder anpassen, aber dies bringt Sie zu 90% dorthin. Wenn Sie es mit allen Browsern zum Laufen bringen möchten, müssen Sie ein wenig damit herumspielen.
Diese Seite hat einige hervorragende Beispiele:
http://www.brunildo.org/test/html_body_0.html
http://www.brunildo.org/test/html_body_11b.html
http://www.brunildo.org/test/index.html
Ich empfehle auch, zu http://quirksmode.org/ zu gehen.
quelle
Ich werde versuchen, die Frage direkt im Titel zu beantworten, anstatt unbedingt eine Fußzeile am Ende der Seite anzubringen.
Lassen Sie div bis zum Ende der Seite verlängern, wenn nicht genügend Inhalt vorhanden ist, um das verfügbare vertikale Browser-Ansichtsfenster zu füllen:
Demo unter (ziehen Sie den Rahmengriff, um den Effekt zu sehen): http://jsfiddle.net/NN7ky
(Oberseite: sauber, einfach. Nachteil: erfordert Flexbox - http://caniuse.com/flexbox )
HTML:
CSS:
ta-da - oder ich bin einfach zu müde
quelle
Versuchen Sie, mit der folgenden CSS-Regel herumzuspielen:
Ändern Sie die Höhe entsprechend Ihrer Seite. Die Höhe wird aus Gründen der Cross-Browser-Kompatibilität zweimal angegeben.
quelle
Sie können es mit der Min-Höhe- Deklaration hacken
quelle
Probieren Sie die "Sticky Footer" -Lösung von Ryan Fait aus.
http://ryanfait.com/sticky-footer/
http://ryanfait.com/resources/footer-stick-to-bottom-of-page/
Funktioniert in IE, Firefox, Chrome, Safari und angeblich auch in Opera, hat das aber noch nicht getestet. Es ist eine großartige Lösung. Sehr einfach und zuverlässig zu implementieren.
quelle
Die Eigenschaft min-height wird nicht von allen Browsern unterstützt. Wenn Sie Ihren #content benötigen, um seine Höhe auf längeren Seiten zu erweitern, wird er durch die Eigenschaft height gekürzt.
Es ist ein bisschen wie ein Hack, aber Sie könnten ein leeres Div mit einer Breite von 1px und einer Höhe von zB 1000px in Ihrem #content div hinzufügen. Dadurch wird der Inhalt mindestens 1000 Pixel hoch und bei längeren Inhalten kann die Höhe bei Bedarf verlängert werden
quelle
Es ist zwar nicht so elegant wie reines CSS, aber ein bisschen Javascript kann dabei helfen:
quelle
Versuchen:
Habe es noch nicht getestet ...
quelle
Klebrige Fußzeile mit fester Höhe:
HTML-Schema:
CSS:
quelle
Versuchen Sie http://mystrd.at/modern-clean-css-sticky-footer/
Der obige Link ist nicht verfügbar, aber dieser Link https://stackoverflow.com/a/18066619/1944643 ist in Ordnung. : D.
Demo:
quelle
Sie können die Längeneinheit "vh" für die Eigenschaft min-height des Elements selbst und seiner übergeordneten Elemente verwenden. Es wird seit IE9 unterstützt:
CSS:
quelle
Ich denke, das Problem wurde behoben, indem nur der HTML-Code zu 100% gefüllt wurde. Möglicherweise füllt der Körper den HTML-Code zu 100%, aber der HTML-Code füllt nicht 100% des Bildschirms.
Versuche es mit:
quelle
Das könnte Ihnen auch gefallen: http://matthewjamestaylor.com/blog/ultimate-2-column-left-menu-pixels.htm
Es ist nicht ganz das, wonach Sie gefragt haben, aber es könnte auch Ihren Bedürfnissen entsprechen.
quelle
Ich habe den Code nicht, aber ich weiß, dass ich dies einmal mit einer Kombination aus Höhe: 1000px und Rand-unten: -1000px getan habe. Versuch das.
quelle
Abhängig davon, wie Ihr Layout funktioniert, müssen Sie möglicherweise den Hintergrund für das
<html>
Element festlegen, der immer mindestens der Höhe des Ansichtsfensters entspricht.quelle
Dies kann nicht nur mit Stylesheets (CSS) erreicht werden. Einige Browser akzeptieren dies nicht
als höherer Wert als der Blickwinkel des Browserfensters.
Javascript ist die einfachste browserübergreifende Lösung, obwohl sie, wie erwähnt, keine saubere oder schöne ist.
quelle
Ich weiß, dass dies nicht die beste Methode ist, aber ich konnte es nicht herausfinden, ohne meine Header-, Menü- usw. Positionen durcheinander zu bringen. Also ... ich habe einen Tisch für diese beiden Spalten verwendet. Es war eine schnelle Lösung. Kein JS benötigt;)
quelle
Weder die beste noch die beste Implementierung der größten Standards, aber Sie können den DIV für einen SPAN ändern ... Es ist eine nicht so empfehlenswerte, aber schnelle Lösung = P =)
quelle