具有 Angular 6 垂直 50-50 高度的 Flex 布局

Posted

技术标签:

【中文标题】具有 Angular 6 垂直 50-50 高度的 Flex 布局【英文标题】:Flex-layout with Angular 6 vertical 50-50 height 【发布时间】:2019-03-03 12:32:33 【问题描述】:

我正在使用带有 Angular6 的 FlexLayoutModule 并尝试在垂直方向上实现两个 50% 高度的 div。我已经尝试过这个特定的代码,但两者都没有占据父级的 50% 高度。

<div style="min-height:50px">I'm header</div>
<div style="height:100%">
<div fxLayout="column" fxLayoutGap="12px">
    <div fxFlex="50%" style="background:#5896FF">
        <h1>I should occupy 50% height of my parent</h1>
    </div>
    <div fxFlex="50%" style="background:#525252">
        <h1>I should occupy 50% height of my parent</h1>
    </div>
</div>

Link of so far working example

This is what I'm trying to achieve

【问题讨论】:

【参考方案1】:

我对您的示例进行了一些更改,让两个 div 将屏幕垂直拆分为 50 / 50。

<div style="height:100%" fxLayout="column">
    <div style="min-height:50px">I'm header</div>
    <div fxLayout="column" fxLayoutGap="12px" fxFlex>
        <div fxFlex style="background:#5896FF">
            <h1>I should occupy 50% height of my parent</h1>
        </div>
        <div fxFlex style="background:#525252">
            <h1>I should occupy 50% height of my parent</h1>
        </div>
    </div>
</div>

你还需要更新styles.css:

html, body 
    height: 100%;
    margin: 0;

Here is a link to the updated example.

【讨论】:

【参考方案2】:

您可以使用 50vh 代替 50% 。它将使用垂直高度的 50%。

<div fxLayout="column" fxLayoutGap="12px" style="">
<div fxFlex="50vh" style="background:#5896FF">
    <h1>I should occupy 50% height</h1>
</div>
<div fxFlex="50vh" style="background:#525252">
    <h1>I should occupy 50% height</h1>
</div>

【讨论】:

我试过了,但我的容器是 100% 的主体,它有两个 50 像素的标题。 如果我使用 50vh,它会向下滚动标题的高度。但我想适合我父母的身高。

以上是关于具有 Angular 6 垂直 50-50 高度的 Flex 布局的主要内容,如果未能解决你的问题,请参考以下文章

垂直对齐具有高度自动和最小高度设置的父级中的div?

如何垂直对齐到具有定义宽度/高度的 div 内容的中心?

UITableViewCell 具有嵌入式垂直堆栈视图设置,具有自动布局和动态高度

具有不同高度的垂直对齐的集合视图单元格

如何在具有(流体高度)的响应框中垂直居中文本[重复]

Java Swing:具有固定宽度和可变高度的垂直布局