css布局问题(关于列)

时间:2011-03-30 10:29:14

标签: html css two-columns

我有这个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必须从页眉到页脚填充,不滚动

'content'必须在必要时显示滚动。

它们的CSS代码会使它成为现实吗?

由于

4 个答案:

答案 0 :(得分:1)

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

http://jsfiddle.net/cVdeT/

答案 1 :(得分: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;
}

答案 2 :(得分:0)

我的方法是将'menu'和'content'包装在他们自己的包装中,如下所示:

<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;
    }

颜色有说明。实际上,菜单仍然是一如既往的高度,并且会延伸到你放入的任何东西,但它总是会占据“内容”的全部高度,因为你可以看透它,它的背景包装器的颜色 - 包括菜单和内容。

答案 3 :(得分:0)

试试这个

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