Marnix Antwort beinhaltet die obere und die untere Polsterung des Inhaltselements verwendet wird; meins beinhaltet die Verwendung der oberen und unteren Grenze.
stolperte ich auf diese Lösung auf meinem eigenen bei dem Versuch, herauszufinden, wie man etwas ähnliches ohne Rückgriff auf Tabellen tun: Das zentrale Element in der Höhe von 100%, aber stellen Sie dann die Box-Sizing-Modell „border-box "(Damit die Höhe nicht nur den Inhalt innerhalb der Box enthält, sondern auch die Rahmen um die Box), machen Sie die oberen und unteren Ränder wirklich dick (wie zB 20px) und verwenden Sie dann eine feste Positionierung, um die Kopf- und Fußzeile zu überlagern die verrückt-dicken oberen und unteren Grenzen des zentralen Elements.
Hier ist mein Beispiel CSS:
html, body {
height: 100%;
margin: 0;
padding: 0;
}
#content {
height: 100%;
-moz-box-sizing: border-box;
box-sizing: border-box;
/* Ensure that the height of the element includes the
box border, not just the content */
border: 0;
border-top: 20px solid white;
border-bottom: 20px solid white;
/* Leave some space for the header and footer to
overlay. */
}
#header,
#footer {
position: fixed;
left: 0;
right: 0;
height: 20px;
background-color: #eee;
/* Specify a background color so the content text doesn't
bleed through the footer! */
}
#header {
top: 0;
}
#footer {
bottom: 0;
}
Dies funktioniert in Google Chrome 24 für Mac. Ich habe es in anderen Browsern jedoch nicht ausprobiert.
Hoffentlich wird dies jemand anderen helfen, der immer noch der Versuchung gegenübersteht, einfach einen Tisch zu benutzen und das Seitenlayout bereits fertigzustellen. :-)
hey, es ist irgendwie funktioniert ... aber ich habe ein Problem. Sagen wir, ich wollte ein div innerhalb des Inhalts auf eine Höhe von 100% relativ zur Höhe des Inhalts setzen ... wie? – JCOC611
Achten Sie nur auf Randkollaps. – zzzzBov
@ JCOC611 Stellen Sie sicher, dass "position: relative" für das übergeordnete Element festgelegt ist, wenn Sie die relative Größe verwenden möchten. – zzzzBov