Angular Material如何使用CSS覆盖.mat-form-field-hide-placeholder行为

时间:2019-05-07 15:46:10

标签: angular angular-material

使用Angular Material,我很难在CSS中覆盖.mat-form-field-hide-placeholder类,当输入失去焦点时,该类会自动添加到父mat-form-field标记中。目的是始终显示占位符。

代码看起来像这样:

<mat-form-field>
  <mat-label>
      Field label
  </mat-label>
  <input type="text" placeholder="placeholder text">
</mat-form-field>

2 个答案:

答案 0 :(得分:1)

您可以使用/ deep /选择器正确覆盖该类。这是角材中的一个已知问题。

/deep/ .mat-form-field-hide-placeholder {
    // your code here
}

重要的是要知道/ deep /选择器当前已被弃用,但据我所知,目前没有任何替代方法可以解决此问题。因此,请注意未来的变化。

答案 1 :(得分:0)

最后,我做到了:

使用SASS:

.mat-form-field.mat-form-field-hide-placeholder {
  .mat-form-field-infix {
    .mat-input-element::placeholder {
      color: $gray-350 !important;
      -webkit-text-fill-color: $gray-350 !important;
    }
  }
}

或普通CSS:

.mat-form-field.mat-form-field-hide-placeholder .mat-form-field-infix  .mat-input-element::placeholder {
      color: $gray-350 !important;
      -webkit-text-fill-color: $gray-350 !important;
}