問題
私は下の画像に似たものを作ろうとしています。ここで、黒は本体でid="library"
、グレーの div id="body"
(内側の div のマージンがないため表示されません)、水色の div id="sideBar"
、赤の div id="content"
、青の div id="navBar"
、および緑の divid="contentWindow"
です。
画像:
赤の div (緑の親) 内に緑の div を含めるのに問題があります。基本的に、赤の div に関して緑のマージンのみを構成し、高さを明示的に設定する必要はありません。これは私の実装です:
すべての div を画面の幅と高さに合わせて調整し、すべてが常に (小さなブラウザー ウィンドウまで) 表示されるようにしたいと考えています。
次のリンクを見てきましたが、有用なものは何も提供されていません。
DIV 100% の高さ内のサイズ変更可能な DIV がうまく機能しない! 助けてください。
コードは上記のフィドルで見ることができますが、ここにも含めました。
body.library,
html {
background: black;
height: 100%;
margin: 0;
padding: 0;
border: 0 none;
}
div#body {
/*display:block;*/
background: #E6E6E6;
max-width: 400px;
display: block;
height: 90%;
margin-top: 20px;
margin-bottom: 20px;
margin-left: auto;
margin-right: auto;
}
div#sidebar {
/*display:block;
position:relative;*/
background: #94DBFF;
float: left;
width: 50px;
height: 100%;
}
div#content {
/*display:block;
position:relative;*/
background: #FF0000;
min-width: 70px;
margin-right: 0px;
margin-left: 50px;
margin-top: 0px;
margin-bottom: 0px;
height: 100%;
}
div#contentWindow {
display: block;
position: relative;
height: auto;
bottom: 0;
top: 0;
left: 0;
right: 0;
margin-top: 20px;
margin-bottom: 20px;
margin-right: 80px;
margin-left: 80px;
background-color: green;
height: 100%;
overflow: auto;
}
div#navBar {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
text-align: center;
}
<body class="library">
<div id=body>
<div id="sidebar">
<p>Hej</p>
<p>Hej</p>
<p>Hej</p>
<p>Hej</p>
</div>
<div id="content">
<div id="navBar">
<p>Hey</p>
</div>
<div id="contentWindow">
<p>Hej</p>
</div>
</div>
</div>
</body>