Как я могу настроить поле формы мат в отключенном состоянии

Я пытаюсь настроить поле mat-form углового материала: я смог настроить границу подчеркивания, используя:

::ng-deep.mat-form-field-ripple {
  background-color: yellow;
}

Теперь я пытаюсь настроить линию подчеркивания в отключенном состоянии, чтобы она была сплошной, а не пунктирной линией:

Я попробовал это, но это не сработало для подчеркивания:

::ng-deep.mat-form-field-disabled
 {

 }

Я хочу, чтобы это было серым цветом в отключенном состоянии

 <mat-form-field>
    <input matInput placeholder="Input" [disabled]='true'>
  </mat-form-field>

6 ответов

Это исправлено:

 ::ng-deep.mat-form-field-disabled .mat-form-field-underline 
    { 
    background-image: linear-gradient( to right, rgba(0, 0, 0, 1) 0, rgba(0, 0, 0, 0.42) 33%, #c2c7cc 0 ) !important; 
    background-size: 1px 100% !important;
     background-repeat: repeat-x !important; 
    } 

Вам нужно нацелиться на следующий класс:-

.mat-form-field-disabled .mat-form-field-underline

CSS, который вы хотите изменить:

background-image: linear-gradient(to right,rgba(0,0,0,1) 0,rgba(0,0,0,.42) 33%,transparent 0);
background-size: 4px 100%;
background-repeat: repeat-x;

Так что вы можете либо unset: all и начать с нового или обновить background-size: 1px 100%; или что угодно для ваших нужд

Можешь попробовать

      ::ng-deep .mat-form-field-disabled {
   .mat-input-element {
        color: rgba(0, 0, 0, 0.14);
    }
    .mat-form-field-label {
        color: rgba(0, 0, 0, 0.14);
    }
    .mat-form-field-underline {
         color: rgba(0, 0, 0, 0.14);
    }
    .mat-form-field-ripple {
         color: rgba(0, 0, 0, 0.14);
    }
    .mat-form-field-required-marker {
         color: rgba(0, 0, 0, 0.14);
    }

Это исправило это:

    ::ng-deep.mat-form-field-disabled .mat-form-field-underline {
    background-image: linear-gradient(
    to right,
    rgba(0, 0, 0, 1) 0,
    rgba(0, 0, 0, 0.42) 33%,
    #c2c7cc 0
  ) !important;
  background-size: 1px 100% !important;
  background-repeat: repeat-x !important;
}

Вам не нужен линейный градиент в фоновом изображении. Это сработало для меня:

      ::ng-deep .mat-form-field-disabled .mat-form-field-underline {
  background-color: #949494 !important;
  background-size: 1px 100% !important;
  background-repeat: repeat-x !important;
}
      ::ng-deep .mat-form-field-appearance-outline.mat-form-field-disabled .mat-form-field-outline,
    .mat-input-element:disabled {
        color: red;

    }

это сделало работу за меня, чтобы раскрасить текст и границы.

Другие вопросы по тегам