如何在 md-toolbar 中将元素定位到右侧?

Posted

技术标签:

【中文标题】如何在 md-toolbar 中将元素定位到右侧?【英文标题】:How to position elements to the right in md-toolbar? 【发布时间】:2015-11-30 14:03:08 【问题描述】:

我在工具栏中使用 FAB 快速拨号。但是我无法让它浮动到工具栏的右侧。我试过float: right 没有运气。另外,尝试了 flex offset="55",但是在调整窗口大小时这不起作用。从本质上讲,无论窗口大小如何,我都希望按钮位于蓝色工具栏容器的最右侧。

请看下面的照片和代码:

<md-toolbar layout-fill layout-padding layout="row" style="background-color: #3F51B5;color:white;text-align:text-center;">
    <div layout="row">
        <i class="fa fa-users fa-2x" flex></i>
        <h1 class="md-title" style="color:white">Org Chart</h1>                                 
    </div>  
    <div class="lock-size" flex offset="55">
        <md-fab-speed-dial md-direction="left" ng-class="md-fling">
            <md-fab-trigger>
                <md-button aria-label="menu" class="md-fab md-accent">
                    <md-tooltip>
                      Actions
                    </md-tooltip>
                    <md-icon md-svg-src="img/icons/ic_view_module_48px.svg"></md-icon>
                </md-button>
            </md-fab-trigger>
            <md-fab-actions>
                <md-button aria-label="view" class="md-fab md-raised md-mini" >
                    <md-tooltip>
                      View Chart
                    </md-tooltip>                               
                    <md-icon md-svg-src="" style="color:black" ng-show="cDP.read" ng-click="paneShowFn('read')"></md-icon>
                </md-button>
                <md-button aria-label="add" class="md-fab md-raised md-mini" >
                    <md-tooltip>
                      Add Chart
                    </md-tooltip>                               
                    <md-icon md-svg-src="img/icons/ic_add_48px.svg" style="color:black" ng-show="cDP.insert" ng-click="paneShowFn('insert')"></md-icon>
                </md-button>
                <md-button aria-label="Settings" class="md-fab md-raised md-mini" >
                    <md-tooltip>
                      Security Access
                    </md-tooltip>                               
                    <md-icon md-svg-src="img/icons/ic_add_48px.svg" style="color:black" ng-show="cDP.permission" ng-click="paneShowFn('permission')"></md-icon>
                </md-button>                                
                <md-button aria-label="edit" class="md-fab md-raised md-mini" style="color:black" ng-show="cDP.update" ng-click="paneShowFn('update')">
                    <md-tooltip>
                      Edit Chart
                    </md-tooltip>                               
                    <md-icon md-svg-src="img/icons/ic_edit_48px.svg" style="color:black"></md-icon>
                </md-button>                                
            </md-fab-actions>
        </md-fab-speed-dial>
    </div>  
</md-toolbar>

【问题讨论】:

在你的 rmenu 中添加 md-position-mode="target-right target" 怎么样? 【参考方案1】:

或者你可以为此使用一个类:

.fill-space 
  // This fills the remaining space, by using flexbox.
  // Every toolbar row uses a flexbox row layout.
  flex: 1 1 auto;
<md-toolbar color="primary">
  <span>Application Title</span>

  <!-- This fills the remaining space of the current row -->
  <span class="fill-space"></span>

  <span>Right Aligned Text</span>
</md-toolbar>

此解决方案也取自规范。

【讨论】:

&lt;span flex&gt;&lt;/span&gt; 工作得很好并且是推荐的做法时,为什么需要这样做? @camden_kid 在我的情况下不起作用。可能是因为我使用的是较新版本的 Angular Material v2 而不是 Angular Material v1.x! @camden_kid 我认为它可以留下来。我正在为材料 2 寻找这个问题,谷歌将我带到这里。该解决方案是通用的,并展示了它的一般工作原理,因此有助于在所有情况下更深入地理解问题。 This solution is also taken from a spec.: 能否提供个链接供参考? @AlexanderAbakumov 我猜this 是您正在寻找的链接。如果我错了,请纠正我。【参考方案2】:

此解决方案适用于 Angular Material v1.X,如果您需要通用/Angular Material v2 解决方案,请查看@experimenter 答案

如果你有一个md-toolbar,最简单的对齐正确内容的方法是这样的:

    <md-toolbar>
        <div class="md-toolbar-tools">
            <h3>You text</h3>
            <span flex></span>
            <ANY>your right content</ANY>
        </div>
    </md-toolbar>

span 中的flex 属性将覆盖内容之间的空间。这是文档中的官方方式。

在你的例子中,你只需要:

<md-toolbar>
    <div class="md-toolbar-tools">
        <div layout="row">
            <i class="fa fa-users fa-2x" flex></i>
            <h1 class="md-title" style="color:white">Org Chart</h1>
        </div>
        <span flex></span>
        <md-fab-speed-dial md-direction="left" ng-class="md-fling">
            <md-fab-trigger>
                <md-button aria-label="menu" class="md-fab md-accent">
                    <md-tooltip>
                        Actions
                    </md-tooltip>
                    <md-icon md-svg-src="img/icons/ic_view_module_48px.svg"></md-icon>
                </md-button>
            </md-fab-trigger>
            <md-fab-actions>
                <md-button aria-label="view" class="md-fab md-raised md-mini">
                    <md-tooltip>
                        View Chart
                    </md-tooltip>
                    <md-icon md-svg-src="" style="color:black" ng-show="cDP.read" ng-click="paneShowFn('read')"></md-icon>
                </md-button>
                <md-button aria-label="add" class="md-fab md-raised md-mini">
                    <md-tooltip>
                        Add Chart
                    </md-tooltip>
                    <md-icon md-svg-src="img/icons/ic_add_48px.svg" style="color:black" ng-show="cDP.insert" ng-click="paneShowFn('insert')"></md-icon>
                </md-button>
                <md-button aria-label="Settings" class="md-fab md-raised md-mini">
                    <md-tooltip>
                        Security Access
                    </md-tooltip>
                    <md-icon md-svg-src="img/icons/ic_add_48px.svg" style="color:black" ng-show="cDP.permission" ng-click="paneShowFn('permission')"></md-icon>
                </md-button>
                <md-button aria-label="edit" class="md-fab md-raised md-mini" style="color:black" ng-show="cDP.update" ng-click="paneShowFn('update')">
                    <md-tooltip>
                        Edit Chart
                    </md-tooltip>
                    <md-icon md-svg-src="img/icons/ic_edit_48px.svg" style="color:black"></md-icon>
                </md-button>
            </md-fab-actions>
        </md-fab-speed-dial>
    </div>
</md-toolbar>

【讨论】:

Np :) 您可以编辑标题以获得更通用的内容,例如“如何在 md-toolbar 的右侧放置元素”。但是有适当的英语xD 我尝试了您建议的解决方案,它只是将组件带到下一行。 @HimanshuChaudhary 你在使用角度材料 v1 吗?我认为这个解决方案不适用于 angular 2 版本 我正在使用 ng2,下面的答案解决了它。

以上是关于如何在 md-toolbar 中将元素定位到右侧?的主要内容,如果未能解决你的问题,请参考以下文章

在Swift中将UIButton从屏幕右侧定位20px

为啥文本元素居中以及如何在 Dart 中将其与右侧对齐

如何在 XAML 中将多个 StatusBarItems 对齐到右侧?

如何在导航栏中将导航项对齐到右侧? [复制]

如何在卡片标题html中将下拉列表移动到右侧末端

如何在 FrameLayout 中将元素右对齐?