在下面所示的标记中,我试图让内容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>


当前回答

固定高度的粘脚:

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

其他回答

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

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

你可以用最小高度声明来搞定它

<div style="min-height: 100%">stuff</div>

我没有代码,但我知道我这样做了一次使用高度:1000px和margin-bottom: -1000px的组合;试试。

你的问题不是div没有100%的高度,而是它周围的容器没有。这将在我怀疑你正在使用的浏览器中有所帮助:

html,body { height:100%; }

你可能还需要调整填充和页边距,但这将使你达到90%的效果。如果你想让它在所有浏览器上都能正常工作,你就得花点心思。

这个网站有一些很好的例子:

http://www.brunildo.org/test/html_body_0.html http://www.brunildo.org/test/html_body_11b.html http://www.brunildo.org/test/index.html

我也推荐你去http://quirksmode.org/

我将尝试在标题中直接回答这个问题,而不是拼命在页面底部添加页脚。

如果没有足够的内容来填充可用的垂直浏览器视口,让div扩展到页面底部:

演示地址:http://jsfiddle.net/NN7ky(拖动框架手柄查看效果) (优点:干净、简单。缺点:需要flexbox - http://caniuse.com/flexbox)

HTML:

<body>
  
  <div class=div1>
    div1<br>
    div1<br>
    div1<br>
  </div>
  
  <div class=div2>
    div2<br>
    div2<br>
    div2<br>
  </div>
  
</body>

CSS:

* { padding: 0; margin: 0; }

html, body {
  height: 100%;
  
  display: flex;
  flex-direction: column;
}

body > * {
  flex-shrink: 0;
}

.div1 { background-color: yellow; }

.div2 {
  background-color: orange;
  flex-grow: 1;
}

哒哒,或者我只是太困了