【问题标题】:Angular sidebar overlaps content of pagesAngular 侧边栏与页面内容重叠
【发布时间】:2018-07-02 11:58:42
【问题描述】:

使用 angular cli 创建侧边栏后:

ng generate @angular/material:material-nav --name=navigation

侧边栏工作正常,但它与每个页面的内容重叠,如何更改?还是我必须在我正在使用的每一页上写上 margin-left?

【问题讨论】:

标签: html css angular angular-material2


【解决方案1】:

'autosize' 属性为我修复了它,但它带有警告,根据文档:

https://material.angular.io/components/sidenav/api

【讨论】:

    【解决方案2】:

    您可以将mat-sidenav mode 更改为pushside

    <mat-sidenav-container class="sidenav-container">
      <mat-sidenav 
          #drawer 
          class="sidenav" 
          fixedInViewport="true" 
          [attr.role]="(isHandset$ | async) ? 'dialog' : 'navigation'"
          mode="push"    <!-- THIS LINE -->
          >
        <mat-toolbar color="primary">Menu</mat-toolbar>
        <mat-nav-list>
          <a mat-list-item href="#">Link 1</a>
          <a mat-list-item href="#">Link 2</a>
          <a mat-list-item href="#">Link 3</a>
        </mat-nav-list>
      </mat-sidenav>
      <mat-sidenav-content>
        <mat-toolbar color="primary">
          <button type="button" aria-label="Toggle sidenav" mat-icon-button (click)="drawer.toggle()" *ngIf="isHandset$ | async">
            <mat-icon aria-label="Side nav toggle icon">menu</mat-icon>
          </button>
          <span>Application Title</span>
        </mat-toolbar>
        <h1>TEST</h1>
      </mat-sidenav-content>
    </mat-sidenav-container>
    

    【讨论】:

    • 我使用了'side'模式,但它没有并排显示,而是与内容重叠
    • 对我来说,这个问题在第一次调用 drawer.toggle() 后得到修复
    【解决方案3】:

    router-outlet 必须在容器内(由原理图生成,说“这里的内容”)并将其从 app.component.html 中删除

     <mat-sidenav-container class="sidenav-container">
          <mat-sidenav 
              #drawer 
              class="sidenav" 
              fixedInViewport="true" 
              [attr.role]="(isHandset$ | async) ? 'dialog' : 'navigation'"
              mode="push"   
              >
            <mat-toolbar color="primary">Menu</mat-toolbar>
            <mat-nav-list>
              <a mat-list-item href="#">Link 1</a>
              <a mat-list-item href="#">Link 2</a>
              <a mat-list-item href="#">Link 3</a>
            </mat-nav-list>
          </mat-sidenav>
          <mat-sidenav-content>
            <mat-toolbar color="primary">
              <button type="button" aria-label="Toggle sidenav" mat-icon-button (click)="drawer.toggle()" *ngIf="isHandset$ | async">
                <mat-icon aria-label="Side nav toggle icon">menu</mat-icon>
              </button>
              <span>Application Title</span>
            </mat-toolbar>
           <router-outlet></router-outlet>  <!-- THIS LINE -->
          </mat-sidenav-content>
        </mat-sidenav-container>
    

    【讨论】:

      猜你喜欢
      • 2021-05-29
      • 2013-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 1970-01-01
      • 2022-11-15
      • 2012-08-27
      相关资源
      最近更新 更多