Ich arbeite an einer Webanwendung, bei der der Inhalt die Höhe des gesamten Bildschirms ausfüllen soll.
Die Seite hat eine Kopfzeile, die ein Logo und Kontoinformationen enthält. Dies kann eine beliebige Höhe sein. Ich möchte, dass der Inhaltsbereich den Rest der Seite bis zum Ende ausfüllt.
Ich habe einen Header divund einen Inhalt div. Im Moment verwende ich eine Tabelle für das Layout wie folgt:
CSS und HTML
#page {
height: 100%; width: 100%
}
#tdcontent {
height: 100%;
}
#content {
overflow: auto; /* or overflow: hidden; */
}
<table id="page">
<tr>
<td id="tdheader">
<div id="header">...</div>
</td>
</tr>
<tr>
<td id="tdcontent">
<div id="content">...</div>
</td>
</tr>
</table>
Die gesamte Höhe der Seite ist gefüllt und es ist kein Bildlauf erforderlich.
Für alles innerhalb des Inhaltsbereichs top: 0;wird es durch die Einstellung direkt unter der Kopfzeile platziert. Manchmal ist der Inhalt eine echte Tabelle, deren Höhe auf 100% eingestellt ist. Wenn Sie headerhineinstecken content, funktioniert dies nicht.
Gibt es eine Möglichkeit, den gleichen Effekt zu erzielen, ohne das zu verwenden table?
Aktualisieren:
Bei Elementen innerhalb des Inhalts divwerden die Höhen ebenfalls auf Prozentsätze festgelegt. Also etwas zu 100% in derdiv füllt es also bis zum Boden. Wie zwei Elemente bei 50%.
Update 2:
Wenn der Header beispielsweise 20% der Bildschirmhöhe einnimmt, nimmt eine mit 50% angegebene Tabelle #content40% des Bildschirmplatzes ein. Bisher funktioniert nur das Einwickeln der gesamten Sache in eine Tabelle.



display:tableund verwandte Eigenschaften verwenden. Diese Antwort auf eine sehr ähnliche Frage finden Sie in dieser Antwort .