在下面所示的标记中,我试图让内容div一直延伸到页面的底部,但只有在有内容要显示时才会拉伸。我想这样做的原因是,即使没有任何内容显示,垂直边界仍然出现在页面下方。

下面是我的演示:

body { font-family: Trebuchet MS, Verdana, MS Sans Serif; font-size:0.9em; margin:0; padding:0; } div#header { width: 100%; height: 100px; } #header a { background-position: 100px 30px; background: transparent url(site-style-images/sitelogo.jpg) no-repeat fixed 100px 30px; height: 80px; display: block; } #header, #menuwrapper { background-repeat: repeat; background-image: url(site-style-images/darkblue_background_color.jpg); } #menu #menuwrapper { height:25px; } div#menuwrapper { width:100% } #menu, #content { width:1024px; margin: 0 auto; } div#menu { height: 25px; background-color:#50657a; } <form id="form1"> <div id="header"> <a title="Home" href="index.html" /> </div> <div id="menuwrapper"> <div id="menu"> </div> </div> <div id="content"> </div> </form>


当前回答

我知道这不是最好的方法,但是如果不搞乱我的标题、菜单等位置,我就无法解决这个问题。所以…我用一张桌子放这两列。这是个权宜之计。不需要JS;)

其他回答

根据布局的工作方式,你可能会在<html>元素上设置背景,它总是至少是视口的高度。

不是所有浏览器都支持min-height属性。如果你需要你的#content在较长的页面上扩展它的高度,height属性会缩短它。

这是一个小技巧,但你可以在#content div中添加一个宽度为1px,高度为1000px的空div。这将迫使内容至少有1000px高,并且仍然允许更长的内容在需要时扩展高度

仅使用样式表(CSS)是不可能实现这一点的。有些浏览器不接受

height: 100%;

作为比浏览器窗口的视点更高的值。

Javascript是最简单的跨浏览器解决方案,尽管如上所述,它并不干净或漂亮。

固定高度的粘脚:

HTML方案:

<body>
   <div id="wrap">
   </div>
   <div id="footer">
   </div>
</body>

CSS:

html, body {
    height: 100%;
}
#wrap {
    min-height: 100%;
    height: auto !important;
    height: 100%;
    margin: 0 auto -60px;
}
#footer {
    height: 60px;
}

你可能还会喜欢这个:http://matthewjamestaylor.com/blog/ultimate-2-column-left-menu-pixels.htm

这不是你所要求的,但也可能适合你的需要。