如何设置切换按钮的颜色

Cod*_*odo 18 angular-material angular angular5

我有一组切换按钮.它们非常轻,在背景中消失在具有高亮度的不良显示器上.

在此输入图像描述

我该如何正确地设计它们?我宁愿将它们分配的口音主要的颜色,你可以做到这一点的常用按键的方式.

在可能的情况下,主色和强调色是暗的.所以他们的文字应该变成白色(有一些透明度).对于常规按钮,它会自动运行.

<div class="output-size">
  <mat-button-toggle-group>
    <mat-button-toggle value="letter">Letter</mat-button-toggle>
    <mat-button-toggle value="legal">Legal</mat-button-toggle>
    <mat-button-toggle value="a4">A4</mat-button-toggle>
    <mat-button-toggle value="a5">A5</mat-button-toggle>
  </mat-button-toggle-group>
</div>
Run Code Online (Sandbox Code Playgroud)

Sas*_*ber 47

matButtonTogglecolor喜欢这样的财产matButton.

您可以使用css类.mat-button-toggle.mat-button-toggle-checked设置不同状态的样式.

使用材料主题,您可以从主题中提取您需要的任何单个调色板,并将背景默认对比色应用于文本颜色,以实现与浅色或深色的最佳对比度.

这是一个Stackblitz与你的mat-button-toggle-group例子:Stackblitz angular-t1k1x6

使用的主题:

@import '~@angular/material/theming';

@include mat-core();

$app-primary: mat-palette($mat-indigo);
$app-accent:  mat-palette($mat-pink, A200, A100, A400);

$app-theme: mat-light-theme($app-primary, $app-accent);

@mixin mix-app-theme($app-theme) {
  $primary: map-get($app-theme, primary);
  $accent: map-get($app-theme, accent);

  .mat-button-toggle {
    background-color: mat-color($primary);
    color: mat-color($primary, default-contrast);
  }

  .mat-button-toggle-checked {
    background-color: mat-color($accent);
    color: mat-color($accent, default-contrast);
  }
}

// Include the mixin
@include mix-app-theme($app-theme);
Run Code Online (Sandbox Code Playgroud)

文档:主题您的Angular Material应用程序

  • 非常感谢。那非常有帮助。我之前曾阅读过该文档页面,但认为它仅适用于自定义组件。我还需要做一件事才能使它工作:如果您像我一样使用自定义主题,则必须在“@include angular-material-theme”之后添加“@include mix-app-theme”。 (2认同)

Sen*_*mar 12

您可以使用这三个 CSS 类.mat-button-toggle.mat-button-toggle-checked来实现两种样式状态

HTML 代码

<mat-button-toggle-group>
    <mat-button-toggle value="letter">Letter</mat-button-toggle>
    <mat-button-toggle value="legal">Legal</mat-button-toggle>
    <mat-button-toggle value="a4">A4</mat-button-toggle>
    <mat-button-toggle value="a5">A5</mat-button-toggle>
</mat-button-toggle-group>
Run Code Online (Sandbox Code Playgroud)

CSS 代码 - 您必须使用 !important

.mat-button-toggle{
    background-color: #306cee;
    color: #ffffff;
}

.mat-button-toggle:hover {
    background-color: transparent;
    color: #1100ff !important;    
}

.mat-button-toggle-checked {
    background-color: #ec2c4c;
    color: #67ec79 !important;
}
Run Code Online (Sandbox Code Playgroud)

  • 使用 !important 是一种不好的做法。更好地学习如何设计组件的样式 (2认同)

小智 6

mat-button-toggle-group {
  box-shadow: none;
}

mat-button-toggle {
    border: 1px rgba(0,0,0,0) solid !important;
    margin-top: 5px !important;
    padding: 0 5px !important;
    z-index: 3 !important;
}

mat-button-toggle:hover {
    border: 1px #000 solid !important;
    background-color: #FFF !important;
    border-radius: 5px !important;
}

.mat-button-toggle-checked {
	  box-shadow: 0 0 30px #000 !important;
    border: 1px #000 solid !important;
    border-radius: 5px !important;
    background-color: #FFF !important;
}

.mat-button-toggle-input {
    background-color: none !important;
    padding-left: 32px !important;
}
Run Code Online (Sandbox Code Playgroud)

如果您只想更改选中的样式