angular - 如何将 "mat-toolbar"放置在 "mat-sidenav"Angular Material 5 之上

标签 angular angular-material angular5 angular-material2 angular-material-5

我写在这里是因为我对 Angular Material 的 Mat Toolbar 和 Mat-sidenav 有疑问。我试图让 Sidenav 位于工具栏下方,工具栏始终占据顶部,如下所示:

Example

这是我的代码:

<mat-sidenav-container class="sidenav-container" autosize>
  <mat-sidenav #drawer class="sidenav" fixedInViewport="true"
      [attr.role]="(isHandset$ | async) ? 'dialog' : 'navigation'"
      [mode]="(isHandset$ | async) ? 'side' : 'push'"
      [opened]="(isHandset$ | async)">
      <mat-toolbar class="fixed-header">
        <img class="logooTest" src="data:image/gif;base64,test"/>
      </mat-toolbar>
   		<mat-nav-list>
			  <mat-list-item>
				<a routerLink="/dashboard">Test</a>
        <mat-icon mat-list-icon>home</mat-icon>
        </mat-list-item>
        <mat-list-item>
          <a routerLink="/dashboard">Test</a>
          <mat-icon mat-list-icon>home</mat-icon>
          </mat-list-item>
          <mat-list-item>
          <a routerLink="/test">Test</a>
          <mat-icon mat-list-icon>tune</mat-icon>
          </mat-list-item>
            <mat-list-item>
            <a routerLink="/#">Test</a>
            <mat-icon mat-list-icon>settings</mat-icon>
            </mat-list-item>
            <mat-list-item>
            <a routerLink="/#">Test</a>
            <mat-icon mat-list-icon>layers</mat-icon>
            </mat-list-item>
            <mat-list-item (click)="showSubmenu = !showSubmenu" class="parent">
              <span class="full-width" *ngIf="isExpanded || isShowing">Test dropdown</span>
              <mat-icon mat-list-icon>flash_on</mat-icon>
              <mat-icon class="menu-button" [ngClass]="{'rotated' : showSubmenu}" *ngIf="isExpanded || isShowing">expand_more</mat-icon>
            </mat-list-item>
			<div class="submenu" [ngClass]="{'expanded' : showSubmenu}" *ngIf="isShowing || isExpanded">
          <mat-list-item>
              <a routerLink="/#">Test</a>
              </mat-list-item>
              <mat-list-item>
                <a routerLink="/#">Test</a>
                </mat-list-item>
        <h2 matSubheader><mat-icon>account_balance</mat-icon>  Test</h2>
				<mat-list-item (click)="showSubSubMenu = !showSubSubMenu" class="parent">
					<span class="full-width" *ngIf="isExpanded || isShowing">Test</span>
					<mat-icon class="menu-button" [ngClass]="{'rotated' : showSubSubMenu}" *ngIf="isExpanded || isShowing">expand_more</mat-icon>
				</mat-list-item>
				<div class="submenu" [ngClass]="{'expanded' : showSubSubMenu}" *ngIf="isShowing || isExpanded">
          <mat-list-item>
            <a routerLink="/test">Test</a>
            </mat-list-item>
            <mat-list-item>
              <a routerLink="/#">Test</a>
              </mat-list-item>
            <h2 matSubheader><mat-icon>card_travel</mat-icon> Test</h2>
            <mat-list-item>
              <a routerLink="/#">Test</a>
              </mat-list-item>
              <mat-list-item>
                <a routerLink="/#">Test</a>
                </mat-list-item>
        </div>

			</div>
		</mat-nav-list>
  </mat-sidenav>
  <mat-sidenav-content>
    <mat-toolbar color="primary" class="mat-elevation-z5">
      <button
        type="button"
        aria-label="Toggle sidenav"
        mat-icon-button
        (click)="drawer.toggle()">
        <mat-icon aria-label="Side nav toggle icon">menu</mat-icon>
      </button>
       <span class="spacer"></span>
       <div class="navigation">
        <a class="button" href="">
          <mat-icon class="logoutIcon">exit_to_app</mat-icon>
        <div class="logout"><span class="aligned-with-icon">Salir</span></div>
        </a>

      </div>
    </mat-toolbar>

  </mat-sidenav-content>
</mat-sidenav-container>

我使用的是 Angular 和 Angular Material 的 5.6.0 版。 我尝试使用 CSS 并更改代码结构的顺序,但最后一个只是给我错误和更多错误;阻止应用程序运行。

最佳答案

您放入 mat-sidenav-content 中的任何内容都会出现在菜单旁边。 sidenav 菜单和内容上方工具栏的基本布局结构是:

<mat-toolbar>...</mat-toolbar>
<mat-sidenav-container>...</mat-sidenav-container>

这是一个关于 StackBlitz 的例子.

关于angular - 如何将 "mat-toolbar"放置在 "mat-sidenav"Angular Material 5 之上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53709700/

相关文章:

angular - 在 azure 上发布 .net core 2.0 Angular Spa Web 应用程序时出错

Angular 9 取消订阅 NavigationEnd

css - md-card-image 溢出 :hidden + max-height kills 100% width

angular - 不能扩展 Angular Material 表

angular - 缺少 *.ts 文件(由于 `npm link`?)

angular - 从 CDK Overlay Portal 获取对组件的引用

javascript - MetaMask - Angular 10 中的 RPC 错误 : Permissions request already pending,

javascript - 自定义自动完成 Angular Material

java - 角度 5 : Response for preflight has invalid HTTP status code 403

javascript - 线性模式在具有单独组件的 mat-h​​orizo​​ntal-stepper 中不起作用