使用Material设计和flex-layout的Angular app。 https://github.com/angular/flex-layout
我尝试在顶部创建一个2列的简单页面布局(左=填充,右= 10%),然后在屏幕底部创建一行。元素仍然只填充内容所需的垂直空间。我发现这样做的唯一方法是手动将高度设置为100%。这是我必须这样做的吗?这个html出了什么问题?
maxOfPlayers
结果:
答案 0 :(得分:5)
将高度设置为100%可能是确实如此。 高度是动态的,因此它将适应您的内容。在您的情况下,内容不会填充页面,因此这是正常行为。
这个解决方案有什么问题?
答案 1 :(得分:2)
我偶然发现了这个问题,因为我遇到了类似的问题,并且我通过使用库FlexLayout的属性 fxFlexFill 以一种(我认为)更一致的方式解决了该问题,而无需手动调整CSS属性。 在您的特定情况下,我将在第一个div元素中包含属性 fxFlexFill ,如下所示:
<div fxLayout="column" fxFlexFill>
...
</div>
我希望这会有所帮助。 马西
答案 2 :(得分:1)
对于希望在Angular 7中执行此操作的人,这里是使用Flex的可能输出。 从插图中可以看出问题所在,我对要求的输出感到困惑。因此,我将布置所有三种情况,输出快照和一个stackblitz游乐场,供您尝试。
如果这是您要执行的操作,则代码中唯一需要的更改是底部div部分
<div fxFlex fxLayoutAlign="start end" class="bottom-div">
BOTTOM ELEMENT: This div is filled and text is aligned in the end
</div>
<div fxFlex fxLayoutAlign="start center" class="bottom-div">
BOTTOM ELEMENT: This div is filled and text is in center
</div>
第三种情况 底部div本身与底部对齐,并且不会填充剩余的垂直空间。
<div fxFlex="20" fxLayoutAlign="start center" class="bottom-div">
BOTTOM ELEMENT: This div is just 20 and aligned to the bottom
</div>
Stackblitz Playground https://stackblitz.com/edit/stackoverflowcom-questions-41665737-angular-2-flex-layout-hei?file=src/app/app.component.html
可能会帮助访问Angular更高版本的人。