在 Angular、Material 和 Flex-Layout 上以 mat-progress-spinner 为中心的叠加文本

Overlay text centered in mat-progress-spinner on Angular, Material and Flex-Layout

我在我的 angular 项目中使用 material 和弹性布局。我有一个 mat-progress-spinner,我想将文本置于其中。我使用绝对位置在某种程度上得到了它,但我的问题是它不会在不同尺寸的屏幕上保持居中。这是我的代码

child.component.html

<div>
  <mat-progress-spinner mode="indeterminate" [strokeWidth]="2" [diameter]="192"></mat-progress-spinner>
  <div class="message">{{ message }}</div>
</div>

child.component.scss

.mat-progress-spinner {
  display: inline-block;
  vertical-align: middle;
}

.message {
  position: absolute;
  text-align: center;
  top: 49%;
  left: 44%;
}

这是一个以父组件为中心的子组件,使用以下

parent.component.html

<div fxLayout="column" fxLayoutAlign="center center" fxFill>
  <app-child></app-child>
</div>

谢谢

您可以使用以下方法,它应该可以解决问题:

.message {
  position: absolute;
  text-align: center;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

希望对您有所帮助。