【问题标题】:How to align three icons to the right of the page headline如何将三个图标对齐到页面标题的右侧
【发布时间】:2017-04-30 17:39:21
【问题描述】:

我有目前的情况:

相关代码:

<md-toolbar color="primary" class="main-toolbar">
  <div fx-layout="row" fx-flex fx-layout-align="space-between">
    <span  class="page-headline">
      <img class="logo" src="./logo.png"/>club
    </span>
    <button md-icon-button class="main_menu_button1" (click)="dinnerClicked()">
      <md-icon>local_pizza</md-icon>
    </button>
    <button md-icon-button class="main_menu_button2" (click)="notificationsClicked()">
      <md-icon>notifications</md-icon>
    </button>
    <button md-icon-button class="main_menu_button3" (click)="eventsClicked()">
      <md-icon>event_note</md-icon>
    </button>
  </div>
</md-toolbar>

我只希望 3 个图标彼此紧密相邻并向右对齐。如果我将fx-layout-align 更改为fx-layout-align-xs,我几乎得到了我想要的:

但是在左边而不是在右边...

我尝试了许多 CSS 配置,但没有一个对我有用,有什么简单的方法可以实现这一点吗?非常感谢。

【问题讨论】:

  • 为它创建 jsfiddle。
  • 您想要justify-content: flex-start css 属性,请参阅此处了解更多信息:css-tricks.com/snippets/css/a-guide-to-flexbox。另外我的建议是不要在你的 HTML 中定义它,而是在 CSS 中!
  • 您可以尝试添加:fx-layout-align="start",如下所示:github.com/angular/flex-layout#api-overview
  • @JoelHarkes 产生我展示的第二个输出(正确,但在左边到右边)
  • 然后使用 end 而不是 start ?如果您希望按钮以不同的顺序排列,您应该更改:flex-direction: row-reverse

标签: html angularjs css angular


【解决方案1】:

只需在您的 css 中添加以下代码:

<style>
.main_menu_button1,.main_menu_button2,.main_menu_button3
{
    float:right;
}
</style>

【讨论】:

  • 正如您在第一张图片中看到的那样,它已经是浮动的,并且通过 fx-flex 符号我很确定他使用的是 css flexbox 布局
  • @JoelHarkes - 为按钮提供固定宽度可能会解决这个问题,如果它仍然保持不变。
【解决方案2】:

如果你使用这个插件:https://github.com/angular/flex-layout#api-overview

我建议:

<md-toolbar color="primary" class="main-toolbar">
  <div fx-layout="row" fx-flex fx-layout-align="end" >
    ...
  </div>
</md-toolbar>

【讨论】:

  • 这部分有效。它正确按我想要的方式调整图标。但它还可以将标题的所有内容向右移动。我只需要移动图标。试图创建另一个 div,但它弄乱了内容并创建了 2 个“级别”...
  • 移动了哪些“其他内容”?它也是弹性盒子的一部分吗?仅仅改变这些 css 属性不应该改变 flexbox 之外的布局。否则设置固定大小可能会起作用?
  • 标志和“俱乐部” - &lt;img class="logo" src="./logo.png"/&gt;clubspan
  • 通过指定 &lt;span class="page-headline" fx-flex fx-layout-align="start"&gt; 设法修复它。谢谢!
  • 啊,我明白了,用justify-content: space-between 将它包装/分隔在另一个弹性框中
猜你喜欢
  • 1970-01-01
  • 2021-06-13
  • 1970-01-01
  • 2020-09-06
  • 2021-09-28
  • 2014-02-08
  • 1970-01-01
  • 1970-01-01
  • 2016-06-30
相关资源
最近更新 更多