問題の分析を容易にするために、私はこのjsFiddleを作成しました:
コード:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
body {margin:0; }
#mainContainer { position: absolute; right: 4%; left: 4%; height: 100%; }
#headerContainer { width: 100%; z-index: 10; position: absolute; background: #323232; color: white; height: 30px; }
#middleContainer { height: 100%; }
#leftSection { position: absolute; float: left; width: 175px; background: #71ABD1; height: 100%; overflow: auto; color: black; padding-top: 30px; }
#middleSection { position: absolute; height: 100%; background-color: yellow; left: 175px; right: 175px; color: black; padding-top: 30px; }
#rightSection { float: right; height: 100%; width: 175px; border-left: 1px dotted black; background: red; color: black; padding-top: 30px; }
#footerContainer { position: absolute; bottom: 0; width: 100%; height: 30px; background: #323232; color: white; }
</style>
</head>
<body>
<div id="mainContainer">
<div id="headerContainer">
headerContainer
</div>
<div id="middleContainer">
<div id="leftSection">
leftSection
</div>
<div id="middleSection">
middleSection
</div>
<div id="rightSection">
rightSection
</div>
</div>
<div id="footerContainer">
footerContainer
</div>
</div>
</body>
</html>
上、中、下のセクションのマークアップでは、問題は次のとおりです。
1-ご覧のとおり、黒で色付けされたフッターは、フッターdivを持っposition:absolute
ているにもかかわらず、実際にはページの下部にありません。bottom:0px
2-さらに重要なことに、leftSection、middleSection、rightSection DIVはヘッダーおよびフッターDIVとオーバーラップします。実際、このフィドルでは、3つの中央セクションに表示されるテキストを表示する唯一の方法は、下に表示されないようにパディングを配置することです。ヘッダーDIV。
オーバーラップの問題を修正するためにmiddleContainerに30pxの上下の値を配置しようとしましたが、これでは問題は解決しません。必要なのは、headerContainerを上に、footerContainerを下に保ち、3つの中央セクションすべてを100%の高さに調整することです。 。leftSectionとrightSectionの幅は固定されていますが、middleSectionの幅と高さは柔軟です。