我有一个 angular2 应用程序,它使用 Angular2-material 库进行样式设置。我正在尝试添加一个 FAB(浮动操作按钮)以悬停在应用程序的右上角,但它会将自身固定到其父组件,而不是窗口。
应用程序的层次结构如下:
app.component
|-detail.component
在 app.component 模板中,我在布局指令的主体中使用 md-sidenav-layout 指令和 router-outlet:
<md-sidenav-layout>
<md-sidenav #sideNav (open)="closeStartButton.focus()">
<router-outlet name="navMenu"></router-outlet>
<br>
<button md-button #closeStartButton (click)="sideNav.close()">Close</button>
</md-sidenav>
<md-toolbar color="primary">
<button md-icon-button (click)="sideNav.toggle()">
<md-icon class="md-24">menu</md-icon>
</button>
<span>{{title}}</span>
</md-toolbar>
<div role="main">
<router-outlet></router-outlet>
</div>
</md-sidenav-layout>
在详细组件模板中,模板顶部有以下内容:
<button md-mini-fab class="fab" (click)="toggleAdd()">
<i class="material-icons">add</i>
</button>
以及该组件的 css:
.fab {
display: block;
position: fixed;
right: 2rem;
bottom: 2rem;
z-index: 10;
}
但是,当我导航到详细信息页面时,.fab 相对于组件而不是窗口定位。我试过encapsulation: ViewEncapsulation.None
在细节组件上使用,但这也不影响它。有没有办法将 fab 定义在细节组件中,但它是否仍然相对于窗口固定?