1
votes

Comment styliser individuellement des composants de matériau angulaire?

J'utilise deux composants de forme matérielle angulaire dans un seul composant:

<!-- First input -->
<mat-form-field>
    <mat-label>Password</mat-label>
    <input matInput type="text">
</mat-form-field>

<br>

<!-- Second input -->
<mat-form-field>
    <mat-label>Password</mat-label>
    <input matInput type="text">
</mat-form-field>

Avant que ces champs de saisie ne soient ciblés, ils devraient regarder ceci

 entrez la description de l'image ici

J'ai besoin de la couleur bleue pour le première étiquette de tapis d'entrée lorsqu'elle est focalisée et que l'étiquette flotte dans le coin supérieur gauche.

 entrez la description de l'image ici

Pour la deuxième entrée mat-label , Je veux de la couleur noire

 entrez la description de l'image ici

Quelqu'un peut-il m'aider à atteindre cet objectif? Merci beaucoup


3 commentaires

Vous pouvez attribuer une classe avec [NgClass] pour remplacer le style de matériau. Ou, peut-être, vous pouvez essayer [NgStyle] mais je crois que l'override nécessitait un ! Important à la fin. C'est également à vous d'ajouter / deep / si vous ne voulez pas que ces modifications soient reflétées ailleurs


Les étiquettes des deux champs de texte doivent toujours afficher la couleur «noire» lorsqu'elles ne sont pas focalisées. Une fois focalisé, le premier devrait montrer la couleur bleue et le second devrait montrer la couleur noire.


Que diriez-vous de définir un thème de tapis pour cela. Vous pouvez le définir globalement ou spécifique à un conteneur


3 Réponses :


0
votes

Essayez ci-dessous.

HTML

mat-form-field.mat-focused:first-child mat-label{
  color:rgb(0, 255, 55);
}


mat-form-field.mat-focused:last-child mat-label{
  color:red;
}

CSS

 <!-- First input -->
<mat-form-field class="first">
    <mat-label>Enter task 1</mat-label>
    <input matInput type="text">
</mat-form-field>

<br>

<!-- Second input -->
<mat-form-field class="second">
    <mat-label>Enter task 1</mat-label>
    <input matInput type="text">
</mat-form-field>


4 commentaires

Désolé, j'ai essayé. Ça ne marche pas. Il change la couleur du texte de l'étiquette lorsque les deux champs de texte ne sont pas focalisés.


mis à jour ma réponse. Essayez ceci. Cela devrait fonctionner maintenant.


Vous pouvez vous référer à l'exemple créé par moi. stackblitz.com/edit/… < / a>


Merci @Hardick, mais je cherche à sélectionner par le nom de la classe ici




0
votes

Si vous voulez éviter :: ng-deep , vous pouvez appliquer des styles dans styles.css

.red-float.mat-focused label{
  color:red !important;
}

styles.css :

  <mat-form-field class="">
    <input matInput placeholder="Favorite food" value="Sushi">
  </mat-form-field>
  <br>
  <mat-form-field class="red-float">
    <input matInput placeholder="Favorite food" value="Sushi">
  </mat-form-field>

Démo p >


0 commentaires