Flex-Layout :将最后一项水平推到最后

Flex-Layout : Push last item to the end horizontally

这是我到目前为止所做的:

https://stackblitz.com/edit/angular-jsmp9l

在代码片段中,我们可以看到一个包含按钮的简单工具栏(打开更大尺寸的 HTML 视图,因为有一些 fxShow / fxHide 指令触发)。

我想要做的是按下 div 末端的登录按钮,最右边。

我尝试了以下方法:

如果我删除 div 容器并使用 <span style="flex: 1 1 auto;"> 它可以正常工作,则登录按钮会出现在工具栏的末尾(水平)。

我想了解为什么 div 容器会导致此行为,以及我如何才能将登录按钮按到右侧。可能我对Flex容器的理解不是很好,欢迎大家指点。

您可以尝试以下方法:

<div fxFill>
  <!-- ... -->
  <a mat-button routerLink="/contact">Contact</a>
  <span fxFlex></span>
  <a mat-button routerLink="/login">Login</a>
</div>

fxFlex 的跨度将填满所有未被其他子元素使用的父容器的 space 。这就是父容器应该有 width: 100% 的原因,否则它只会和它的子容器需要的一样大。使用 Flex-Layout,您可以通过使用 fxFill.

来实现

编辑:

但是在 declarative API docs, fxFill is listed but does not have any comment. In the code docs 中,它说:

'fxFill' flexbox styling directive
Maximizes width and height of element in a layout container

NOTE: fxFill is NOT responsive API!!