Twitter Bootstrap:容器中的div,高度为100%

Mat*_*rts 120 css height twitter-bootstrap

使用twitter bootstrap(2),我有一个带导航栏的简单页面,在里面container我想添加一个100%高度的div(到屏幕底部).我的css-fu生锈了,我无法解决这个问题.

简单的HTML:

<body>
  <div class="navbar navbar-fixed-top">
   <!-- Rest of nav bar chopped from here -->
  </div>
  <div class="container fill">
    <div id="map"></div> <!-- This one wants to be 100% height -->
  </div>
</body>
Run Code Online (Sandbox Code Playgroud)

目前的CSS:

#map {
    width: 100%;
    height: 100%;
    min-height: 100%;
}

html, body {
    height: 100%;
}

.fill { 
    min-height: 100%;
}
Run Code Online (Sandbox Code Playgroud)
  • 编辑*

我已按照下面的建议为填充类添加了高度.但是,问题在于我在主体上添加了一个填充顶部以考虑顶部的固定导航栏.这会影响"map"div的100%高度,这意味着会添加一个滚动条 - 如下所示:http://jsfiddle.net/S3Gvf/2/有谁能告诉我如何修复?

Hor*_*ren 121

将班级设置.fillheight: 100%

.fill { 
    min-height: 100%;
    height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

的jsfiddle

(我把红色背景放在一起,#map所以你可以看到它占据了100%的高度)

  • 谢谢,这种作品,但是Twitter自举导航,固定位置,使地图离开底部 - 你需要滚动到底部.我不知道如何使div跨度到整个可用的屏幕空间MINUS导航栏. (2认同)
  • http://jsfiddle.net/S3Gvf/4/使用`box-sizing:border-box;`带有填充(body标签)的元素,以便于解决方法 (2认同)

Zim*_*Zim 24

更新2018年

Bootstrap 4中,flexbox可用于获得填充剩余空间的高布局.

首先,容器(父)需要全高:

选项1_为...添加一个类min-height: 100%;.请记住,min-height 只有在父级具有已定义的高度时才有效:

html, body {
  height: 100%;
}

.min-100 {
    min-height: 100%;
}
Run Code Online (Sandbox Code Playgroud)

https://www.codeply.com/go/dTaVyMah1U

选项2_使用vh单位:

.vh-100 {
    min-height: 100vh;
}
Run Code Online (Sandbox Code Playgroud)

https://www.codeply.com/go/kMahVdZyGj

然后,d-flex flex-column在容器上使用flexbox方向列,并flex-grow-1在要填充剩余高度的任何子 div(即:)上使用row.

另请参阅:
Bootstrap 4 Navbar和内容填充高度flexbox
Bootstrap - 在页眉和页脚之间填充流体容器
Bootstrap 4:如何使行拉伸剩余高度?

  • 为什么这两种方法似乎都与简单地创建占据窗口底部高度其余部分的第二个容器相反?开发人员应该能够灵活地在上述给定的空间中使用引导程序做任何他们想做的事情。 (2认同)
  • 您是 BootStrap 这些表单上备受尊敬的开发人员。我没有对你投反对票,是其他人投的。我只是对你的回答感到惊讶,因为你的大多数答案都得到了高度评​​价。我希望有一个例子来说明它是如何工作的。我还没有找到任何东西,但如果 flexbox 确实有一种简单的方法来填充页面底部元素的其余部分,那就太好了。感谢您尝试提供答案,我只是假设我们可以轻松实现这一点。我猜不会 :) (2认同)
  • 好的,如答案中所述“在容器上使用 flexbox 方向列 d-flex flex-column,并在要填充剩余高度的任何子 div(即:行)上使用 flex-grow-1”...父母是 100% 高度的解释 (2认同)

Sum*_*pta 7

这很简单。您可以使用

.fill .map 
{
  min-height: 100vh;
}
Run Code Online (Sandbox Code Playgroud)

您可以根据需要更改高度。