У меня есть моя структура HTML следующим образом:
<div id="pagewrap">
<div id="header">
</div>
<div id="content">
<div id="left"></div>
<div id="right"></div>
</div>
<div id="footer"></div>
</div>
Я хочу увеличить размер div для контента, когда div div в div div увеличивается с тем же размером, что и другой div.
Как я могу это достичь?
Вот как мой css:
#pagewrap
{
width: 100%;
height: 100%;
}
#header{width: 100%;height:97px;position:relative;}
#left{position:absolute;left:0px;width:20%;background-color:#1C2326;}
#right{position:absolute;right:0px;width:80%;background-color:#2D3538;color:#fff;}
#footer{clear:both;height: 80px;background-color:#72D27C;}
Если вы хотите, чтобы на обертке влияли размеры содержимого, вы не можете использовать position: absolute
во внутренних div. Попробуйте вместо них плавать (и добавить overflow: hidden
в контейнере, чтобы очистить внутренние поплавки):
#pagewrap { width: 100%; height: 100%; }
#content { overflow: hidden; }
#header { width: 100%; height: 97px; position:relative; }
#left { float: left; width: 20%; background-color: #1C2326; }
#right { float: left; width: 80%; background-color: #2D3538; color: #fff; }
#footer { height: 80px; background-color: #72D27C; }
Я думаю, может быть, эта скрипка ближе к тому, что вы имели в виду. Вы можете позволить левому div (статическое положение, без поплавка) установить высоту содержимого, а затем привязать верхний и нижний правый div к содержимому div. По мере того, как листья растут, контент растет, и право привязано к содержанию, давая вам эффект, который вы хотите. Однако это асимметрично - если вы хотите, чтобы либо div заставлял другого следовать за ним, это другая проблема.
CSS:
html, body {
height: 100%;
}
#pagewrap {
width: 100%;
height: 100%;
}
#content {
position: relative;
}
#header {
width: 100%;
height:97px;
}
#left {
left:0px;
width:20%;
background-color:#1C2326;
color: #fff;
top: 0;
}
#right {
position:absolute;
right:0px;
width:80%;
background-color:#2D3538;
color:#fff;
bottom: 0;
top: 0;
}
#footer {
clear:both;
height: 80px;
background-color:#72D27C;
}