콘텐츠가 전체 화면의 높이를 채우려는 웹 응용 프로그램에서 작업하고 있습니다.
이 페이지에는 로고와 계정 정보가 포함 된 헤더가 있습니다. 이것은 임의의 높이가 될 수 있습니다. 콘텐츠 div가 나머지 페이지를 맨 아래에 채우고 싶습니다.
헤더 div
와 내용이 div
있습니다. 현재 레이아웃에 테이블을 사용하고 있습니다.
CSS와 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>
페이지의 전체 높이가 채워지며 스크롤이 필요하지 않습니다.
content div 내부의 모든 항목에 대해 설정 top: 0;
하면 헤더 바로 아래에 배치됩니다. 때로는 내용이 높이가 100 %로 설정된 실제 테이블이됩니다. header
안에 넣으면 content
작동하지 않습니다.
?를 사용하지 않고 동일한 효과를 얻을 수있는 방법이 table
있습니까?
최신 정보:
내용 내부의 요소 div
는 높이를 백분율로 설정합니다. 내부의 100 %에 해당 div
하는 것이 바닥에 채워집니다. 50 %의 두 가지 요소도 마찬가지입니다.
업데이트 2 :
예를 들어, 머리글이 화면 높이의 20 %를 차지하는 경우 내부에서 50 %로 지정된 테이블 #content
은 화면 공간의 40 %를 차지합니다. 지금까지 전체를 테이블에 래핑하는 것이 작동하는 유일한 방법입니다.
display:table
있고 관련 속성 을 사용하여 비슷한 질문에 대한 답변 을 볼 수 있습니다.