使用 Angular Material,是不是可以在同一行中将一个按钮向左对齐,另一个按钮向右对齐?

Posted

技术标签:

【中文标题】使用 Angular Material,是不是可以在同一行中将一个按钮向左对齐,另一个按钮向右对齐?【英文标题】:Using Angular Material, is it possible to align one button to the left and another to the right, in the same row?使用 Angular Material,是否可以在同一行中将一个按钮向左对齐,另一个按钮向右对齐? 【发布时间】:2016-01-25 20:46:23 【问题描述】:

根据Angular Material's documentation on alignment:

layout-align 属性需要两个词。第一个字说如何 孩子将在布局的方向上对齐,第二个 单词说孩子将如何垂直于 布局的方向。

我用它来创建如下图所示的按钮部分:

使用以下代码:

<section layout="row" layout-sm="column" layout-align="end center" layout-wrap>
  <md-button class="md-primary">Submit</md-button>
  <md-button class="md-warn">Cancel</md-button>
  <md-button class="md-warn">Delete Boundary Partner Type</md-button>
</section>

但是,我希望 Submit 按钮左对齐,而所有其他按钮右对齐。是否有使用 Angular Material 的正确方法,还是我只需要创建自己的样式?

【问题讨论】:

【参考方案1】:

这适用于最新的 Angular。

如果你想将多个按钮左对齐或右对齐,你可以简单地用 div 组合按钮。

例如,当您将 Prev 和 Next 按钮放在左侧,将关闭按钮放在右侧时,

<section fxLayout fxLayoutAlign="space-between center">
   <div>
      <button mat-button>Prev</button>
      <button mat-button>Nex</button>
    </div>
    <button mat-button cdkFocusInitial mat-dialog-close>Close</button>
</section>

【讨论】:

【参考方案2】:

"space-between center" 适用于 Angular V5 和 angular/flex-layout。 您必须将其用作:fxLayoutAlign = "space-between center"

【讨论】:

我认为这是目前最好的答案。它有效而且很短。【参考方案3】:

你也可以使用

layout-align="space-between center"

见这个例子:https://material.angularjs.org/latest/demo/panel (最后一个例子)

【讨论】:

仅适用于 angularjs (v1) 材料,不适用于 Angular (v2+)【参考方案4】:

您可以在 divlayout-align 的帮助下这样做,代码如下:

<section layout="row" layout-sm="column" layout-align="end center" layout-wrap>
  <div layout="row" layout-align="start center" flex>
    <md-button class="md-primary">Submit</md-button>
    <span flex></span>
  </div>
  <md-button class="md-warn">Cancel</md-button>
  <md-button class="md-warn">Delete Boundary Partner Type</md-button>
</section>

还有一个工作的Plunker

【讨论】:

如果包裹在 md-toolbar 中,这似乎不起作用。 您的 plunker 中的按钮位于彼此下方。问题问“一左一右”。我不明白这有什么帮助。 我也是这么想的,但是如果你去全屏预览,那就对了。这是因为“layout-sm”设置为“column”,但“layout”设置为“row”。基本上,如果屏幕不够大,它会显示为列,否则 - 行。

以上是关于使用 Angular Material,是不是可以在同一行中将一个按钮向左对齐,另一个按钮向右对齐?的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2 Material Design 组件是不是支持布局指令?

在Angular 2+项目中使用AngularJS Material组件

Angular Material:“mat-dialog-content”不是已知元素

怎么评价Angular推出的Material,相比Polymer如何

无法绑定到“formControl”,因为它不是“输入”的已知属性 - Angular2 Material Autocomplete 问题

如何使用 Angular-Material 获得全高侧导航