CSS,垂直拉伸div直到达到其父级的高度

Ver*_*ous 9 html css height stretch

包裹在一个pageWrapper容器中,我在一列中有3个div.第一个(标题)和最后一个(navWrapper)具有固定的高度.我需要中间的one(contentWrapper)来拉伸高度,直到父div pageWrapper达到最大高度(根据浏览器的视口).

我绘制了这个问题的模式. 在此输入图像描述

这是我目前解决方案的 一个小提琴.http://jsfiddle.net/xp6tG/

这里的代码

CSS和HTML

html, body{
  height: 100%;
}

body{
  background-color: #E3E3E3;
}

#pageWrapper{
  margin: 0 auto;
  position: relative;
  width: 600px;
  height: 100%;
}

header{ 
  display:block;
  width: 100%;
  height: 100px;
  background: yellow;
}

#contentWrapper{
  width: 100%;
  height: 100%;
  background: blue;
}

#navWrapper{
  width: 100%;
  height: 100px;
  background: green;
}
Run Code Online (Sandbox Code Playgroud)
<div id="pageWrapper">
  <header>
    Header
  </header>
  <div id="contentWrapper">
    Content
  </div>
  <div id="navWrapper">
    Nav
  </div>
</div>
Run Code Online (Sandbox Code Playgroud)

它几乎正常工作,但它导致高度过高,导致出现垂直滚动条.

Mar*_*det 10

这是一种做法.

应用以下CSS:

html, body{ height: 100%; margin: 0;}
body{ background-color: #e3e3e3;}

#pagewrapper{
    margin: 0 auto;
    position: relative;
    width: 600px;
    height: 100%;
}
header{ 
    display:block;
    width: 100%;
    height: 100px;
    background: yellow;
}
#contentwrapper{
    width: 100%;
    position: absolute;
    top: 100px;
    bottom: 100px;
    left: 0;
    background: blue;
}
#navwrapper{
    width: 100%;
    position: absolute;
    height: 100px;
    bottom: 0px;
    left: 0;
    background: green;
}
Run Code Online (Sandbox Code Playgroud)

因为你指定的高度header#navwrapper块元件,可以使用绝对定位相对于父#pagewrapper块来设定的底部和顶部对偏移#contentwrapper和底部,用于偏移 #navwrapper.

如果你看到一个滚动条,你可能需要设置margin: 0为任意的html和/或body标签.

演示小提琴:http://jsfiddle.net/audetwebdesign/yUs6r/