【问题标题】:Angular material toolbar not inheriting from angular materials角度材质工具栏不继承自角度材质
【发布时间】:2019-06-14 20:05:30
【问题描述】:

我想在我的应用程序左侧集成一个导航栏。但是css中的继承好像不行。

导航工具栏应该像视频中一样继承角度材料“IF”的样式,我做对了。现在基本上没有继承任何东西。我在控制台中没有错误,我确定,我已经导入了机器人等。

因为我是这个领域的新手,所以我通过 youtube 视频获得指导: https://www.youtube.com/watch?v=Q6qhzG7mObU 我更新了我的 npm 和 ng。此外,我使用 'ng add @angular/material' 来确保所有内容都已正确配置和导入。

app.module.ts:

import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MainNavComponent } from './main-nav/main-nav.component';
import { LayoutModule } from '@angular/cdk/layout';
import { MatToolbarModule, MatButtonModule, MatSidenavModule, MatIconModule, MatListModule } from '@angular/material';

@NgModule({
  declarations: [
    AppComponent,
    MainNavComponent
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
    BrowserAnimationsModule,
    LayoutModule,
    MatToolbarModule,
    MatButtonModule,
    MatSidenavModule,
    MatIconModule,
    MatListModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

styles.css:

html, body { height: 100%; }
body { margin: 0; font-family: Roboto, "Helvetica Neue", sans-serif; }

这是材质工具栏的自动生成模板 main-nav-component.ts:

<mat-sidenav-container class="sidenav-container">
  <mat-sidenav #drawer class="sidenav" fixedInViewport="true"
      [attr.role]="(isHandset$ | async) ? 'dialog' : 'navigation'"
      [mode]="(isHandset$ | async) ? 'over' : 'side'"
      [opened]="!(isHandset$ | async)">
    <mat-toolbar>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>XML-ConfiguratorV2</span>
    </mat-toolbar>
    <!-- Add Content Here -->
  </mat-sidenav-content>
</mat-sidenav-container>

这里是有问题的css:

.sidenav .mat-toolbar {
  background: inherit;
}

现在我实际得到的结果是这样的:

感谢您的帮助:D

【问题讨论】:

  • 您是否尝试过包含official documentation 中提到的标准主题之一?只需在您的styles.css 顶部添加@import '@angular/material/prebuilt-themes/deeppurple-amber.css';
  • 截图正在我这边工作。我用'ng add'做到了。该样式适用于应用程序,但继承 mat-sidenav 的样式似乎不起作用。 link“截图”

标签: angular npm angular-material


【解决方案1】:

您只需在mat-toolbarmat-sidenav 中添加color="primary"。所以,在你的代码中:

...
<mat-sidenav-container ...>
    <mat-sidenav ...>
        <mat-toolbar color="primary">Menu</mat-toolbar> // Note : color="primary" at this line
    </mat-sidenav>
</mat-sidenav-container>
...

【讨论】:

  • 谢谢,工作。我还必须删除背景:从 .sidenav 和 .mat-toolbar 继承样式。现在它看起来像我期望的那样。不知道为什么自动生成的模板坏了^^'...
  • 我遇到了同样的问题!谢谢大家的cmets!
猜你喜欢
  • 1970-01-01
  • 2016-11-05
  • 1970-01-01
  • 2017-02-15
  • 2016-05-02
  • 2022-10-05
  • 1970-01-01
  • 2019-04-05
  • 1970-01-01
相关资源
最近更新 更多