使Angular Material图标的中心居中[重复]

Posted

技术标签:

【中文标题】使Angular Material图标的中心居中[重复]【英文标题】:Center the center of an Angular Material icon [duplicate] 【发布时间】:2021-12-13 20:58:11 【问题描述】:

我正在尝试将 Angular Material 图标居中放置在一个矩形中:

如图所示,图标(或多或少)居中;然而,它实际上有点偏离中心。我认为(但诚然无法证明)正在发生的事情是图标的边缘居中(而不是图标的中心居中),这使图标看起来“偏离中心”。我希望能够使图标的中心居中,但到目前为止我发现的所有参考资料都是如何使整个图标居中(这是我已经在做的)。

我想做的一件事是计算代码中某处的绝对(或相对)位置,但如果我可以避免它,我强烈希望 not 这样做,因为这看起来像“脆弱" 和劳动密集型的方式。

我的模板如下:

<div
    class="rectangle"
    (click)="clicked(item)"
    [style.backgroundColor]="item.color"
    *ngIf="item.itemType == allEnumTypes.ClickButton"
    title=" item.warning "
  >
    <mat-icon
      *ngIf="item.icon"
      fontIcon=" item.icon "
      [style.color]="item.iconColor"
      class="large-icon"
      style="padding-top: 20%; padding-right: 30%"
    ></mat-icon><br /><br />
    <span class="select-button-text" [style.color]="item.fontColor" style="padding-bottom: 0%"> item.display </span>
  </div>

矩形类的 CSS 是:

.rectangle 
  width: 139px;
  height: 125px;
  border: 2px solid #bfc0c2;
  opacity: 1;
  text-align: center !important;
  background: #ffffff 0% 0% no-repeat padding-box;

有人可以在这里指出我的错误吗?

【问题讨论】:

【参考方案1】:

我喜欢使用css-flex 居中

  .center
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
  

如果你的矩形是

.rectangle 
    width: 139px;
    height: 125px;
    border: 2px solid #bfc0c2;
  

你可以的

<div class="center rectangle">
  <!--see that the margin-top is equal to the line-height-->
  <div class="center" style="margin-top:1.25rem">
    <mat-icon
      aria-hidden="false"
      style="font-size: 3rem;width:3rem;height:3rem"
      aria-label="Example home icon"
      >home</mat-icon
    >
    <div style="line-height: 1.25rem">Home</div>
  </div>
</div>

或者如果您想将组图标和标签居中

<div class="center rectangle">
    <mat-icon
      aria-hidden="false"
      style="font-size: 3rem;width:3rem;height:3rem"
      aria-label="Example home icon"
      >home</mat-icon
    >
    <div style="line-height: 1.25rem">Home</div>
</div>

见stackblitz

注意:要更改 mat-icon 的大小,您应该更改字体大小、宽度和高度

【讨论】:

以上是关于使Angular Material图标的中心居中[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Angular 2 Material - 如何居中进度微调器

删除 BottomNavigationView 图标和中心标题

文本对齐中心与谷歌图标

如何使社交图标与移动设备的中心对齐?

使用 Material 图标字体并将 Angular 组件的封装设置为原生

Angular 9 - 删除 Angular Material Stepper 上的默认图标(创建)