Pracuję nad aplikacją internetową, w której chcę, aby zawartość wypełniała wysokość całego ekranu.
Strona ma nagłówek, który zawiera logo i informacje o koncie. Może to być dowolna wysokość. Chcę, aby div treści wypełnił resztę strony na dole.
Mam nagłówek div
i treść div
. W tej chwili używam tabeli do takiego układu:
CSS i 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>
Pełna wysokość strony jest wypełniona i nie jest wymagane przewijanie.
Dla czegokolwiek w div treści, ustawienie top: 0;
umieści go bezpośrednio pod nagłówkiem. Czasami zawartość będzie prawdziwym stołem, którego wysokość będzie ustawiona na 100%. Włożenie do header
środka content
nie pozwoli na to.
Czy istnieje sposób na osiągnięcie tego samego efektu bez użycia table
?
Aktualizacja:
Elementy wewnątrz zawartości div
będą miały również ustawione wartości procentowe. Więc coś w 100% w środku div
wypełni go do dołu. Podobnie jak dwa elementy na 50%.
Aktualizacja 2:
Na przykład, jeśli nagłówek zajmuje 20% wysokości ekranu, tabela określona na 50% wewnątrz #content
zajmuje 40% powierzchni ekranu. Do tej pory zawijanie całej rzeczy w stół jest jedyną rzeczą, która działa.
display:table
i powiązanych właściwości, zobacz tę odpowiedź na bardzo podobne pytanie.