당신이 생각하는 한 가지 중요한 사실은 body와 html 요소가 너비와 높이가 100 %로 설정되어야한다는 것입니다.
<!DOCTYPE html>
<html>
<head>
<style>
body, html {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
background: gray;
}
#header {
background: red;
height: 100px;
width: 100%;
}
#main {
background: blue;
height: 100%;
width: 400px;
margin: 0 auto;
}
</style>
</head>
<body>
<div id="header"></div>
<div id="main"></div>
</body>
</html>
당신이 그것을 실행하는 경우, 당신이 볼 수있는 유일한 문제는 스크롤 막대가 표시 있다는 것입니다 :
이 예제에서 보라. 그게
#main
div가 창 높이를 가지며 헤더에서 100px가 더 많기 때문입니다.
내가 제안하는 해결책은 헤더를 메인 div 위로 부순 다음안에 또 다른 div를 추가하는 것입니다. 따라서 절대적으로 100px 벨로우즈에 배치되므로 많은 문제없이 그 내부에서 작업 할 수 있습니다. 전체 코드는 다음과 같습니다.
<!DOCTYPE html>
<html>
<head>
<style>
body, html {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
background: gray;
}
#header {
background: red;
height: 100px;
width: 100%;
position: absolute;
top: 0;
z-index: 20;
}
#main {
background: blue;
height: 100%;
width: 400px;
margin: 0 auto;
position: relative;
z-index: 10;
}
#main #content {
position: absolute;
top: 100px;
}
</style>
</head>
<body>
<div id="header"></div>
<div id="main">
<div id="content">
<p style="margin:0">Paragraph</p>
</div>
</div>
</body>
</html>
재설정 파일을 사용해야합니다. 단락 요소와 같은 여백은 레이아웃을 상당히 엉망으로 만듭니다.
업데이트 : 이 솔루션은 오버플로 문제를 유발합니다.
#main {
background: blue;
min-height: 100%; /* Changed */
width: 400px;
margin: 0 auto;
position: relative;
z-index: 10;
}
#main #content {
padding-top: 100px; /* Changed */
}
을 그리고 마크 업 (마지막 예제와 같은) 이런 식으로되어 있는지 확인 : 다음과 같이
변경이 개 CSS 블록 : 그래서 여기에 더 나은 버전입니다
<div id="header"></div>
<div id="main">
<div id="content">
<!-- Content goes here -->
</div>
</div>
그해야 트릭을해라!
실제 질문은 무엇입니까? – Spliffster
'overflow : scroll'? – Eray
그는 컨텐츠 뷰어가 항상 브라우저 뷰포트의 아래쪽으로 확장되기를 원합니다. – Chris