tom*_*3pr 5 css default button angular-material
我有以下按钮
<td mat-cell *matCellDef="let element">
<button mat-icon-button type="button" (click)="downloadStuff(element)">
<mat-icon mat-icon matTooltip="{{element.someId}}">picture_as_pdf</mat-icon>
</button>
</td>
Run Code Online (Sandbox Code Playgroud)
一切都很好,但我注意到默认情况下会概述小bug:
好的...。CSS使我可以删除以下内容的烦人的轮廓:
button:focus {
outline: none;
}
Run Code Online (Sandbox Code Playgroud)
但是然后..我仍然得到这个令人讨厌的默认背景焦点:
我在CSS中尝试了一些与叠加层和背景相关的东西,但这些似乎都没有解决这个问题。如何删除此默认背景?为什么它的默认行为如此???
Bot*_*ond 14
单击或触摸 Material Design 按钮后,它会保持聚焦 ---> 要解决此问题,您需要添加以下代码: onclick="this.blur()"
<button mat-raised-button onclick="this.blur()" (click)="onEdit()">Edit</button>
Run Code Online (Sandbox Code Playgroud)
或者在你的情况下
<td mat-cell *matCellDef="let element">
<button mat-icon-button type="button" onclick="this.blur()" (click)="downloadStuff(element)">
<mat-icon mat-icon matTooltip="{{element.someId}}">picture_as_pdf</mat-icon>
</button>
</td>
Run Code Online (Sandbox Code Playgroud)
在您的样式 css 中,只需添加此代码。它将从所有按钮中删除那些烦人的轮廓
button:focus {
outline: none !important;
}
Run Code Online (Sandbox Code Playgroud)
小智 6
就我而言,真正的问题是按钮的结构。Angular Material构建各种子组件,最后一个是具有CSS类的'div' mat-button-focus-overlay:
我的解决方法很简单。在style.css添加或覆盖中mat-button-focus-overlay:
.mat-button-focus-overlay {
background-color: transparent!important;
}
Run Code Online (Sandbox Code Playgroud)
小智 5
也试试这个。
<button mat-icon-button [autofocus]="false" (click)="closeDialog()">
<mat-icon>clear</mat-icon>
</button>`
Run Code Online (Sandbox Code Playgroud)
只需添加[autofocus].
小智 5
问题有点老了。但我为此找到了更好的解决方案。
将tabindex="-1"添加到按钮标签,问题就解决了!
<button tabindex="-1" mat-icon-button type="button" (click)="downloadStuff(element)">
<mat-icon mat-icon matTooltip="{{element.someId}}">picture_as_pdf</mat-icon>
</button>
Run Code Online (Sandbox Code Playgroud)