如何使div垂直填充其父元素?

Mat*_*ick 13 html css layout

我试图垂直#sidebar填充#main(和匹配#content的高度).我该怎么做呢?

这是我的jsFiddle.

CSS:

#main {
   border: solid green 2px;
}

#sidebar {
    background-color: red;
    width: 20%;
    overflow: auto;
    float: left;
    height: 100%;
}

#content {
    background-color: orange;
    width: 80%;
    overflow: auto;
    float: left;
    height: 100%;
}

#main-footer {
    clear: both;
}?
Run Code Online (Sandbox Code Playgroud)

和HTML:

<div id="main">

 <div id="sidebar">
     <ul>
         <li>abc</li>
         <li>def</li>
     </ul>
 </div>

 <div id="content">
defsdfasdfasd fjasd;lf jasdl;fkjasd; lfjas; lfkjadsfl;sdajfs dlfjsdlfksjflaskfjsdaljfasdl asdfsad sfljsf sadfjsldfj sakfj;alsdfj dfsjsadfl;j asdlfjl;asdfj 
defsdfasdfasd fjasd;lf jasdl;fkjasd; lfjas; lfkjadsfl;sdajfs dlfjsdlfksjflaskfjsdaljfasdl asdfsad sfljsf sadfjsldfj sakfj;alsdfj dfsjsadfl;j asdlfjl;asdfj 
 </div>

 <div id="main-footer">
 </div>

</div>?
Run Code Online (Sandbox Code Playgroud)

sep*_*ain 11

如果没有明确设置div高度,这有点棘手. 这是一个解决方案.

  • 你告诉它100%的容器是#main.由于#main没有高度,因此它本身就是100%.将高度设置为#main和#sidebar,#content将设置为100%. (3认同)
  • 好的,我知道 - 如果`#main`的高度以像素为单位,它会起作用,但如果高度是%,则不行. (3认同)