首页 > 解决方案 > 使用行/容器引导程序填充窗口剩余高度

问题描述

在过去的 3 天里,我一直在寻找解决此问题的方法,但没有任何结果。

所以,我有一个必须适合窗口的 HTML 页面,并且我使用的是 bootstrap 4.1.1。这个页面非常简单:

整个代码大约有 250 行,所以我将尝试只写一个我需要的示例:

<body>
<div id="header" class="container-fluid">
   <!--Bootstrap rows and stuffs that actually work well
</div>

<div class="container-fluid">
    <div class="row" id="main-row">    
        <!--FIRST COLUMN: SUMMARY-->
        <div id="menu" class="col-2 box">
            <!--Here i have a navbar menu-->
        </div>

        <!--SECOND COLUMN: CONTENT-->
        <div id="content" class="col-8 box">
           <!--Here i have contents: one video tag and one carousel-->
        </div>

        <!--THIRD COLUMN: DESCRITPION-->
        <div id="description" class="col-2 box">
           <!--Here i some text-->            
        </div>
    </div>
</div>

我只需要整个第二个容器流体(或其中的单行)来填充窗口的其余部分,使每一列都保持在该高度。

这是我尝试过的:

  1. 正文和 html 高度设置为 100%;
  2. 尝试使用一个大容器来存放标题和内容,而不是两个
  3. 将第二个容器的高度设置为 100%/inherit/almostTriedEverything: 这很奇怪,它实际上设置为窗口高度的 100%,但忽略了标题高度(所以我仍然有一个垂直滚动条)
  4. 很多其他的东西,比如类似表格的布局,flex(我想避免它,因为 IE 兼容性)和几乎所有在网上找到的解决方案

有趣的事实:引导列完全忽略了身体高度,它们超过了它的下限。

标签: bootstrap-4containersheight

解决方案


如果这可以帮助某人,我已经通过解决方法解决了这个问题。

Bootstrap 几乎不关心高度并保持它们固定(我的意思是,例如,如果窗口高度降低,标题不会调整其高度)。因此,将标题高度声明为(在我的情况下,它非常适合)165px 允许我计算第二行的高度

height: calc(100vh - 165px);

不是最好的解决方案,但它有效


推荐阅读