使用twitter bootstrap和容器流体100%高度

时间:2012-11-28 19:37:18

标签: html css twitter-bootstrap

我已经看到了一些关于占据100%屏幕的div的问题,但没有一个完全符合我的要求。我猜最接近的是:

How to have multiple columns that consume 100% height using twitter bootstrap?

这个问题是它没有使用twitter引导程序约定,而且我还有一些额外的div嵌套。

相关的代码段在这里:

<!-- Standard bootstrap fixed header -->
<div class="navbar navbar-inverse navbar-fixed-top">
  <div class="navbar-inner">
    <div class="container">
      <a class="btn btn-navbar" data-toggle="collapse" data-target=".nav-collapse">
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
        <span class="icon-bar"></span>
      </a>
      <a class="brand" href="#">Project name</a>
      <div class="nav-collapse collapse">
        <ul class="nav">
          <li class="active"><a href="#">Home</a></li>
          <li><a href="#about">About</a></li>
          <li><a href="#contact">Contact</a></li>
        </ul>
      </div><!--/.nav-collapse -->
    </div>
  </div>
</div>

<!-- here is the interesting section -->
<div id="app-container" class="container-fluid" style="background-color: red;">
  <div id="app" class="row-fluid" style="background-color: blue;">
    <div id="menu" class="span2" style="background-color: green;">
      Menu
    </div>
    <div id="content" class="span10" style="background-color: purple;">
      Content                    
    </div>
  </div>
</div>   

指向jsFiddle的链接:http://jsfiddle.net/djMJX/18/

我需要什么:

  • 容器 - 流体div(#app-container)应该到达页面底部
  • 顶部导航栏不应引起额外滚动
  • 内容也应该到达页面底部。如果内容长于页面,#app-container和#content应该拉伸,以便内容包含在

我尝试过将高度和最小高度设置为100%的各种变化。问题似乎来自额外的排液。我已经接近所有div到达页面底部的位置,当内容足够短时它看起来很好,但是当内容超出页面高度时它就崩溃了。

我感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:3)

我们最近开始使用Bootstrap,但是作为Web应用程序,我们在使用100%高度的网格系统时遇到了困难。我们的解决方案是使用一些使用Flexible Box Layout模块的辅助css类来补充Bootstrap网格。

这是规范中的摘要:

  

该规范描述了针对用户界面设计优化的CSS盒模型。在flex布局模型中,flex容器的子节点可以在任何方向上布置,并且可以“弯曲”&#34;它们的大小,要么增长以填充未使用的空间,要么缩小以避免溢出父母。可以容易地操纵儿童的水平和垂直对齐。这些框的嵌套(水平内部垂直或垂直内部水平)可用于构建二维布局。

以下是一些进一步的细节......

CSS Flexible Box Layout Module Specification

Introduction and Tutorial

然而,规范只是在候选推荐阶段,所以它仍然很新。您还需要考虑浏览器支持......

Can I Use Flexbox

如果您确实需要支持旧版本的IE,则可以使用polyfill:

FlexieJS