对不起,如果我重复一个问题-找不到关于我的问题的任何信息。
我将angular 6与material design一起使用。我需要更改按钮mat-fab-mini
和其中的图标的大小。在检查工具html中以这种方式呈现:
要更改大小,我使用了以下代码,但并未使按钮内的图标变小:
html
<button mat-mini-fab class="my-fab">
<mat-icon aria-label="favorite">favorite</mat-icon>
</button>
scss
.my-fab {
width: 20px;
height: 20px;
line-height: 16px;
.mat-button-wrapper {
padding: 2px 0 !important;
line-height: 16px !important;
width: 16px !important;
height: 16px !important;
.mat-icon {
font-size: 16px;
padding-right: 4px;
line-height: 16px;
}
}
}
这是结果:
.mat-button-wrapper
的属性完全不变。图标位于按钮的底部,图标的大小未更改。如何更改material2上的图标大小以避免出现这种情况?
答案 0 :(得分:3)
好的,我找到了解决方案。更改角形材质2组件的继承属性确实很困难。为此,我应该按照回答here (already plused :D )
所以在我的代码中,我对scss进行了以下更改:
.my-fab {
width: 20px;
height: 20px;
line-height: 14px;
font-size: 14px;
&::ng-deep .mat-button-wrapper{
line-height: 14px;
padding: 0;
.mat-icon {
font-size: 14px;
padding-right: 4px;
padding-top: 4px;
}
}
}
现在一切看起来都很不错。如果您知道更好和正确的方法来更改mat-fab-mini
的大小和其中的图标-请在此处回答,如果可行,我会将其标记为正确答案。否则,我会在2天后将答案标记为正确。
答案 1 :(得分:1)
我这样成功了:
html
<button mat-mini-fab color="basic" class="button24">
<mat-icon class="icon24">attach_file</mat-icon>
</button>
css
.button24 {
background-color: #eee;
width: 24px;
height: 24px;
}
.icon24 {
font-size: 16px;
margin-top: -8px;
}
JPM
答案 2 :(得分:0)
根据我对有角度的材料组件的样式进行弄乱的经验,我可以说它们的样式是深深嵌套的,并且几乎在所有层次结构中始终如此,以致您编写的任何针对元素类的代码都行不通。
但是,涉及图标时,有一个简单的解决方案。使用<i>
标签和有意义的材料类代替<mat-icon>
<button mat-mini-fab class="my-fab">
<i class="material-icons md-18" aria-label="favorite">favorite</i>
</button>
在上面的代码中,类md-18
将图标的字体大小定义为18像素。您还可以使用md-24
,md-36
或md-48
,它们都是材料框架中所有预定义的类。如果您想要自定义大小,则可以使用css中的my-fab类将按钮内的<i>
标签定位为目标,并按如下所示更改其字体大小
.my-fab i {
font-size: 15px;
}
希望这会有所帮助!
答案 3 :(得分:0)
此问题的根本原因是图标是嵌入式元素。
因此,调整图标大小最清晰的方法是将其更改为块元素:
HTML
<button mat-raised-button>
<mat-icon>create</mat-icon>
</button>
CSS
button {
mat-icon {
display: block;
width: 128px;
height: 128px;
font-size: 128px;
line-height: 128px;
}
}
答案 4 :(得分:0)
为我工作
HTML
<button mat-fab>
<mat-icon class="md-36" inline aria-label="Home button">
home
</mat-icon>
</button>
<button mat-fab>
<mat-icon class="md-48" inline aria-label="Up button">
expand_less
</mat-icon>
</button>
CSS
.material-icons.md-18 {
margin-top: -3px;
font-size: 18px;
}
.material-icons.md-24 {
margin-top: -3px;
font-size: 24px;
}
.material-icons.md-36 {
margin-top: -3px;
font-size: 36px;
}
.material-icons.md-48 {
margin-top: -4px;
font-size: 48px;
}
图标正确居中,并且包装div不会溢出fab / button 我想不太优雅
答案 5 :(得分:0)
我在标题(SCSS)中使用较小的编辑按钮的解决方案:
h3 > button {
width: 1.8rem !important;
height: 1.8rem !important;
line-height: 80% !important;
.mat-button-wrapper {
padding-top: 0.4rem !important;
line-height: 80% !important;
}
.mat-icon {
width: 80%;
height: 80%;
font-size: 80%;
}
}
模板:
<h3>
Title
<button mat-mini-fab color="primary" class="ml-2" title="Edit" (click)="edit()">
<mat-icon>edit</mat-icon>
</button>
</h3>
答案 6 :(得分:0)
似乎想要更改按钮的大小,我们更改了1.button的大小2. span是图标的包装,并且3.包含的图标的大小也是如此。另外,如下所示在全局style.scss文件中创建一个mixin,以便可以将其重用于不同的大小。
@mixin change-button-size($btnsize,$fontsize) {
height: $btnsize;
width: $btnsize;
line-height: $btnsize;
span{
height: $btnsize;
padding: 0px !important;
i{
font-size: $fontsize;
}
}
}
.mat-mini-fab.mdb-30{
@include change-button-size(30px, 15px);
}
.mat-mini-fab.mdb-40{
@include change-button-size(40px, 20px);
}
答案 7 :(得分:0)
对于带有文本的 mat fab 图标,我遇到了类似的问题。实际上有一个简单的解决方案是不使用已弃用的 ng deep
.my-custom-fab-button {
display: flex;
align-items: center;
justify-content: space-around;
}
和图标
.mat-icon-button {
line-height: 1;
}
如果您使用的是带有文本内容的 mat fab 图标(圆形按钮),那么您可以使用 like
.my-fabbutton-with-text {
width: 50px; //for the outline
height: 50px; // for the outline
font-size: 14px; //for the text in icon
display: flex;
align-items: center;
justify-content: space-around;
}
希望对大家有所帮助
答案 8 :(得分:0)
快速简单:)
<button mat-mini-fab color="primary" [ngStyle]="{transform: 'scale(0.8)'
}">
<mat-icon>cloud_download</mat-icon>
</button>
答案 9 :(得分:0)
您可以尝试缩放 mat-mini-button 而不会弄乱字体和位置。请参阅下面的示例。
HTML
<button mat-mini-fab>
<mat-icon>favorite</mat-icon>
</button>
CSS
button[mat-mini-fab] {
transform: scale(0.7) !important;
}