1

我有这个 HTML 结构

<div id="header">
    …
</div>
<div id="menu">
    ...
</div>
<div id="content">
    ...
</div>
<div id="footer">
    ...
</div>

和CSS:

#header {
    height: 100px;
}

#footer {
    border: 1px solid #989898;
    padding-bottom: 0.1em;
    width: 100%;
    height: 2.2em;
    position: fixed;
    bottom: 0px;
    left: 0px;
}

#menu {
    width: 150px;
    float: left;
    ???
}

#content {
    ???
}

页眉和页脚都可以,但问题来自菜单和内容 div:

'menu' div 必须从页眉填充到页脚,无需滚动

如有必要,“内容”必须显示滚动。

什么样的 CSS 代码会让它们变得真实?

谢谢

4

4 回答 4

1

我已经尝试了您的答案,但结果并不令人满意,所以最后我为我制定了更好的解决方案:

http://jsfiddle.net/cVdeT/

于 2011-03-30T10:56:01.920 回答
0

很久以前就遇到过这样的问题,希望对你有帮助

HTML


<div id="wrapper">
  <div id="header">
    ...
  </div>
  <div id="menu">
    ...
  </div>
  <div id="content">
    ...
  </div>
  <div id="footer">
    ...
  </div>
</div>

CSS


#wrapper
{
  position: relative;
  ...
  ...
}

#header
{
   position: absolute;
   top: 0;
   left: 0;
   height: 100px;
}

#footer
{
   position: absolute;
   bottom: 0;
   height: XXXpx;
   display: block;
}

#menu
{
   position: absolute;
   top: 110px;
   left: 0;
   bottom: 0;
   width: 150px;
   height: 100%;
   display: block;
}

#content
{
   position: absolute;
   top: 110px;
   left: 160px;
   width: XXXpx;
   display: block;
}

于 2011-03-30T10:40:16.970 回答
0

我的方法是将“菜单”和“内容”包装在自己的包装器中,如下所示:

<div id='contentWrapper'>
    <div id="menu">
        ....
    </div>
    <div id="content">
        ....
    </div>
</div>

风格是这样的:

    #contentWrapper {
        width: 1000px;
        overflow: hidden;
        background-color: yellow;
    }

    #menu {
        width: 150px;
        float: left;
        background-color: transparent;
    }

    #content {
        width: 850px;
        float: left;
        background-color: white;
    }

颜色是用来说明的。实际上,菜单的高度仍然与以往相同,并且会围绕您放入的任何内容展开,但它似乎总是占据“内容”的全部高度,因为您可以看穿它,并且它占据了它的背景包装器的颜色 - 围绕菜单和内容延伸。

于 2011-03-30T10:40:25.673 回答
0

尝试这个

#menu { width: 150px; height: 100%; overflow-y: auto; display: block; }

于 2011-03-30T10:42:03.013 回答