我建议两种解决方案:
1.首先,在那个按钮上设置一个额外的类,以避免所有垫子凸起的按钮都受到样式变化的影响,我想这不是你的目标。 p>
HTML:
<button mat-raised-button class="myButton" (click)="openDialog();">Pick one</button>
CSS:
.myButton:focus{
box-shadow: 0 0 rgba(255, 255, 255, 1) !important;
transition:none !important;
background-color: rgba(255, 255, 255, 1) !important;
-webkit-tap-highlight-color:rgba(255, 255, 255, 1) !important;
}
然后你可以设置垫子的样式
a) 使用 ::ng-deep 在组件的样式表中设置它:
::ng-deep .myButton>.mat-button-focus-overlay {
background-color:transparent !important;
}
::ng-deep .mat-app-background{
background: white !important
}
Demo
b) 使用 ViewEncapsulation.none 设置:
类:
import { ViewEncapsulation } from '@angular/core';
...
@Component({
...
encapsulation:ViewEncapsulation.None
})
CSS:
.myButton>.mat-button-focus-overlay {
background-color:transparent !important;
}
.myButton>.mat-app-background{
background: white !important
}
Demo
c) 在 style.css 中设置:
.myButton>.mat-button-focus-overlay {
background-color:transparent !important;
}
.myButton>.mat-app-background{
background: white !important
}
Demo
- 当您单击该按钮时,它会获得焦点。通过将焦点设置在其他元素上来关闭该按钮的焦点:
...
<input matInput #input [(ngModel)]="name" placeholder="What's your name?">
...
<button mat-raised-button class="myButton" (click)=" input.focus();openDialog() ">Pick one </button>
Demo