11

我真的在这里挣扎。我们正在使用 md-sidenav-layout 并发现无法想出将 md-toolbar 固定到页面顶部的方法:

|--------------------------------|
|   <------ md-toolbar ------->  |       <- fix this so content scrolls under
|--------------------------------|
|                               ^|
|           scrollable           |
|                               v|
----------------------------------

由于 md-sidenav-layout 似乎可以自我修复的方式,添加

style: fixed

到 md-toolbar 并不能修复它 - 事实上似乎什么都没有!

任何帮助表示赞赏。

4

2 回答 2

6

用这个:

<md-toolbar color="primary" layout="row" style="position: fixed;">
</md-toolbar>
<md-sidenav-container fullscreen>
</md-sidenav>

CSS:

.mat-toolbar.mat-primary{
    position: fixed;
    top: 0;
    right: 0;
    left: 0;
    z-index: 9;
}
于 2017-07-27T12:34:05.267 回答
3

对于其他为此苦苦挣扎的人来说,之所以困难,是因为 md-sidenav-layout 和 md-sidenav-content 都指定

transform: translate3d(0,0,0)

这样做是重置子元素的坐标系。这是使用 transform3d 的已知“问题”或考虑因素。我们想出的替代方案是将 md-toolbar 放置在 md-sidenav-layout 之外,如下所示:

<div style="position: fixed; width: 100%">
  <md-toolbar>...</md-toolbar>
</div>
<md-sidenav-layout style="top: 64px !important">...</md-sidenav-layout>

执行上述操作可以获得具有全屏布局的固定 md-toolbar 所需的效果。

有关固定/translate3d 问题的更多信息,请参阅此 SO:'transform3d' not working with position: fixed children

于 2016-11-03T07:38:42.730 回答