HTML + CSS布局有3行,中间行流体夹在固定高度的行中

Jay*_*012 1 html css

我想知道是否有一个纯粹的html + css方式来指定3行布局,其中中间div是贪婪的并占用两个固定行留下的所有剩余高度.在XAML中,这将是星号(*)字符.防爆. <row height="*"></row> 它告诉渲染引擎该行将消耗其父级提供的所有剩余高度.

我希望总高度占据所有屏幕高度(没有垂直滚动).

<body style="height:100%">
   <header style="height: 64px"> </header>

   <div style="height: *"> </div>

   <footer style="height: 64px"> </footer>
</body>
Run Code Online (Sandbox Code Playgroud)

调整浏览器屏幕大小时,中间内容应该波动,但页眉和页脚应保持相同的高度固定.

Jam*_*ess 6

使用CSS中的绝对定位可以很容易地实现这一点.

* {
  margin:0;
}
header {
  position:absolute;
  width:100%;
  height:64px;
  top:0;
}
footer {
  position:absolute;
  width:100%;
  height:64px;
  bottom:0;
}
div {
  position:absolute;
  width:100%;
  top:64px;
  bottom:64px;
}
Run Code Online (Sandbox Code Playgroud)

请注意,在实际代码中,您将要使用内部div的类,否则您将为所有div元素设置样式.

这是一个更完整的小提琴示例:http://jsfiddle.net/BMxzn/