5

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

如何使用 twitter bootstrap 让多个列消耗 100% 的高度?

这个问题是它不使用 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/

我需要的:

  • container-fluid div (#app-container) 应该到达页面底部
  • 顶部导航栏不应该有额外的滚动
  • 内容也应该到达页面底部。如果内容比页面长,#app-container 和 #content 应该拉伸,以便内容包含在其中

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

我很感激我能得到的任何帮助。谢谢!

4

1 回答 1

3

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

这是规范的摘要:

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

这里有一些进一步的细节......

CSS 灵活框布局模块规范

简介和教程

然而,该规范仅处于候选推荐阶段,因此它仍然很新。您还需要考虑浏览器支持...

我可以使用弹性盒吗

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

FlexieJS

于 2013-02-08T09:51:27.103 回答