Bootstrap 4 - 部分高度为 100% 的容器

Posted

技术标签:

【中文标题】Bootstrap 4 - 部分高度为 100% 的容器【英文标题】:Bootstrap 4 - container with 100% height of section 【发布时间】:2017-06-09 09:42:10 【问题描述】:

所以我在这里遇到了 Bootstrap 4(以及 flexbox)的问题。这是代码: html

<section id="intro">  
    <div class="container-fluid">
        <div class="row align-items-center">
            <div class="col align-self-center">
                <h1>We design things</h1>
            </div>
        </div>
    </div>
</section>

还有 CSS:

#intro 
    min-height: 65vh;
    background-image: url("../img/intro.png");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;

.container-fluid 
    height: 100%;
    min-height: 100%;

我希望 .container-fluid 始终是其父高度的 100%,所以如果部分有 100vh,容器也应该有,如果它有 50vh,它也应该有 50vh。我怎么做?如果它的高度是 h1 的高度,我不能使用 flexbox 居中。

【问题讨论】:

【参考方案1】:

一般来说,当你想让一个元素成为它的父元素的高度时,让父元素成为一个弹性容器。

#intro 
    min-height: 65vh;
    background-image: url("../img/intro.png");
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    display: flex; /* NEW */

弹性容器的初始设置是align-items: stretch。这意味着 flex 容器的子容器会自动拉伸容器的整个 cross-size。在行方向上,这将是高度。因此,将display: flexdisplay: inline-flex 应用于section#intro

【讨论】:

不幸的是,这不起作用 - 容器现在居中,但它仍然具有 h1 元素的高度,而不是部分。 您的问题是关于使container-flud 与父级高度相同。 这里是整个代码:codepen.io/GRHU/pen/jywoQV 是的,我想制作 .container-fluid,它位于#intro 部分的完整高度,它的父级是 65vh,然后使用 Bootstrap 4 类使其水平和垂直居中。 Flex layout only works between parent and child。如果你想将弹性属性应用到h1,那么你需要将它的父级设为弹性容器(并移除人工高度):revised codepen Adding display: flex to .container-fluid 修复了它,但我很确定应该使用 flexbox 构建的 Boostrap 4 默认具有它 - 结果只有行具有 flex 属性这很奇怪。感谢您的帮助。

以上是关于Bootstrap 4 - 部分高度为 100% 的容器的主要内容,如果未能解决你的问题,请参考以下文章

使用js将div高度设置为100%

无法使用 Bootstrap 4 在页眉和页脚之间制作 100% div 高度

Bootstrap:如何获得具有 100% 高度的另一列的列

Bootstrap 4 导航栏和内容填充高度 flexbox

具有动态右侧内容的 100% 高度左侧边栏 - Bootstrap + Wordpress

Twitter Bootstrap 100% 高度手风琴“跳跃”