css - 是否可以在 Angular Material Design 中设置按钮样式的主题

标签 css material-design angular-material

众所周知,在 Angular Material Design 中,您可以自定义主题,甚至可以创建多个主题,只需单击一下即可更改它们,至少可以更改颜色。但是是否也可以更改主题,包括 html 和 css 中元素的样式?因此,例如我持有 2 个不同的主题,在主题 A 中,按钮应该是圆 Angular 绿色,而在主题 B 中,按钮应该是圆 Angular 蓝色。因此,只需单击一下,您就可以在它们之间切换,网站就会应用它?

最佳答案

看起来您需要创建一个自定义主题。请按照以下说明操作:

  1. 在应用的 SCSS 文件的顶层包含 Angular Material 的主题。

    @import '~@angular/material/theming';
    
  2. 包含 mat-core 混合宏。

    @include mat-core();
    
  3. 添加一些调色板:(有关调色板的完整列表,请参阅 here)

    $my-app-primary: mat-palette($mat-deeppurple);
    $my-app-accent: mat-palette($mat-amber, A200, A100, A400);
    $my-app-theme: mat-light-theme($my-app-primary, $my-app-accent);
    
  4. 将主题纳入个人主题。

    注意:您还可以使用类在颜色主题之间切换。

    .my-app-theme {
      @include mat-button-theme($my-app-theme);
    }
    
  5. 然后您可以使用属性绑定(bind)和 ngClass 引用它。 (ngClass, [class.className])

    <button mat-button [ngClass]="{'my-app-theme': isToggled, 'another-app-theme': !isToggled}" (click)="toggleState()" color="primary">Toggle theme</button>
    
    isToggled: boolean;
    
    toggleState() {
      this.isToggled = !this.isToggled;
    }
    

考虑查看 Theming guide关于 Angular Material 。

关于css - 是否可以在 Angular Material Design 中设置按钮样式的主题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50255045/

相关文章:

reactjs - Material UI 和网格系统

angularjs - 在指令中包装 md-tabs 会产生 "Orphan ngTransclude Directive"错误

javascript - 在 Chrome 中工作的 jQuery 脚本,但在 FireFox 和 Opera 中不工作

css - 媒体查询不起作用,使用类更改显示属性

html - 图片按钮在 HTML5/CSS3 中不可点击

css - 在打印中使用 HTML5 details 元素

c# - 如何使用代码在 C# 中调用 materialDesign 组件并添加到 wpf 设计中?

android - 无法从未提升的透明 FloatingActionButton 中删除 "shadow"

Angular Material : is it possible to create modals (or dialogs) with ng-template?

Angular Material Select Optional 多项选择