나는 다음 중 하나를 사용하고 있습니다 : CSS 레이아웃-100 % 높이
최소 높이
이 페이지의 #container 요소는 최소 높이가 100 %입니다. 이렇게하면 콘텐츠가 뷰포트가 제공하는 것보다 더 많은 높이를 요구할 경우 #content의 높이는 # 컨테이너도 길어지게합니다. #content의 가능한 열을 #container의 배경 이미지로 시각화 할 수 있습니다. div는 테이블 셀이 아니며 이러한 시각적 효과를 만들기 위해 실제 요소가 필요하지 않습니다. 아직 확신이 없다면; 직선과 단순한 색 구성표 대신 흔들리는 선과 그라데이션을 생각하십시오.
상대 위치
#container는 상대적 위치를 가지므로 #footer는 항상 맨 아래에 유지됩니다. 위에서 언급 한 최소 높이로 # 컨테이너가 확장되는 것을 막을 수 없기 때문에 # 컨텐더가 # 컨테이너를 더 길게 만들더라도 작동합니다.
패딩 바닥
더 이상 일반 흐름에 있지 않기 때문에 #content의 padding-bottom은 이제 절대 #footer를위한 공간을 제공합니다. 이 패딩은 기본적으로 스크롤 된 높이에 포함되므로 바닥 글이 위의 내용과 겹치지 않습니다.
이 레이아웃을 테스트하려면 텍스트 크기를 약간 조정하거나 브라우저 창의 크기를 조정하십시오.
html,body {
margin:0;
padding:0;
height:100%; /* needed for container min-height */
background:gray;
font-family:arial,sans-serif;
font-size:small;
color:#666;
}
h1 {
font:1.5em georgia,serif;
margin:0.5em 0;
}
h2 {
font:1.25em georgia,serif;
margin:0 0 0.5em;
}
h1, h2, a {
color:orange;
}
p {
line-height:1.5;
margin:0 0 1em;
}
div#container {
position:relative; /* needed for footer positioning*/
margin:0 auto; /* center, not in IE5 */
width:750px;
background:#f0f0f0;
height:auto !important; /* real browsers */
height:100%; /* IE6: treaded as min-height*/
min-height:100%; /* real browsers */
}
div#header {
padding:1em;
background:#ddd url("../csslayout.gif") 98% 10px no-repeat;
border-bottom:6px double gray;
}
div#header p {
font-style:italic;
font-size:1.1em;
margin:0;
}
div#content {
padding:1em 1em 5em; /* bottom padding for footer */
}
div#content p {
text-align:justify;
padding:0 1em;
}
div#footer {
position:absolute;
width:100%;
bottom:0; /* stick to bottom */
background:#ddd;
border-top:6px double gray;
}
div#footer p {
padding:1em;
margin:0;
}
나를 위해 잘 작동합니다.
min-height: 100vh;
있습니다. 높이를 화면 크기 이상으로 설정합니다vh: vertical height
. 자세한 내용은 w3schools.com/cssref/css_units.asp 를 참조하십시오 .