无法获得角度材料md-sidenav为100%高度

Ale*_*ler 40 css angular-material angular

我正在使用带有sidenav的angular2-material制作一个新的angular2应用程序.我不能为我的生活得到那个高度为100%的sidenav.我正试图让一个菜单滑出来占据屏幕的整个高度.无论用户在哪里滚动,我都希望它以相同的方式打开.

这是我的模板:

<md-sidenav-layout class="demo-sidenav-layout">
  <md-sidenav #start mode="over">

    <a [routerLink]="['/login']" class="btn btn-primary">Log in</a>
    <br>
  </md-sidenav>
    <md-toolbar color="primary">

      <button md-button (click)="start.toggle()">Open Side Drawer</button>
      <span>Spellbook</span>

      <span class="demo-fill-remaining">

      </span>

    </md-toolbar>
  <div class="demo-sidenav-content">

    <router-outlet></router-outlet>
  </div>
</md-sidenav-layout>
Run Code Online (Sandbox Code Playgroud)

这是我的CSS:

.demo-sidenav-layout {
  //border: 3px solid black;
  min-height:100%;
  md-sidenav {
    padding: 10px;
    background: gainsboro;
    min-height: 100%;
  }
}

.demo-sidenav-content {
  padding: 15px;
  min-height:100%;
}

.demo-toolbar {
  padding: 6px;

  .demo-toolbar-icon {
    padding: 0 14px 0 14px;
  }

  .demo-fill-remaining {
    flex: 1 1 auto;
  }

}
Run Code Online (Sandbox Code Playgroud)

我也html设置height:100%body设置为min-height:100%

小智 57

全屏使用

<md-sidenav-layout fullscreen>

  <md-sidenav #start mode="over">
    <a [routerLink]="['/login']" class="btn btn-primary">Log in</a>
    <br>
  </md-sidenav>

  <md-toolbar color="primary">
    <button md-button (click)="start.toggle()">Open Side Drawer</button>
    <span>Spellbook</span>
    <span class="demo-fill-remaining"></span>
  </md-toolbar>

  <div class="demo-sidenav-content">
    <router-outlet></router-outlet>
  </div>

</md-sidenav-layout>
Run Code Online (Sandbox Code Playgroud)

  • `md-sidenav-layout`是deprectad.这不再有效了 (4认同)
  • md-sidenav-container是相同的新名称,全屏仍然使用新名称. (4认同)
  • 显然`md-sidenav-container`是新名称.资料来源:https://github.com/angular/material2/pull/2183 (2认同)
  • 这个答案已经过时了。正如Kumars的答案所示,`fixedInViewport =“ true”`是现在要走的路(已通过Angular Material 6进行了检查) (2认同)

Ric*_*nez 44

根据对问题的评论:Angular Material 2 - 不全屏渲染,全屏属性将被删除......

试试这个:

mat-sidenav-container {
   position: fixed;
   height: 100%;
   min-height: 100%;
   width: 100%;
   min-width: 100%;
}
Run Code Online (Sandbox Code Playgroud)

  • 在最新版本中,这应该是.mat-sidenav-container (3认同)
  • 正如@ YesMan85所说,新版本是md-sidenav-container或.mat-sidenav-container.无论哪种方式都记得使用position:fixed!important; 如果你不喜欢在你的CSS中使用!important,你可以使用"md-sidenav-container.mat-sidenav-container"来避免它. (2认同)

Kum*_*mar 10

在最新版本的material.angular中,您可以在mat-sidenav上使用属性fixedInViewport.

见下文.

<mat-sidenav #start mode="over" fixedInViewport="true"> ... </mat-sidenav>
Run Code Online (Sandbox Code Playgroud)