2017-07-19 1 views
1

J'utilise progress bar de Angular Material et j'essaie de le personnaliser. Je peux définir les bordures, les rayures, la couleur de la partie progressée (tampon?) Simplement en stylisant l'élément lui-même (par exemple md-progress-bar { border: 1px solid black }) mais je ne peux pas ajouter la couleur de fond pour la barre. Si je change la couleur de fond du .mat-progress-bar-buffer via les outils de développement, cela fonctionne, mais sinon via le composant css (ou tout autre css, d'ailleurs).Couleur de fond du tampon MdProgressBar en matériau angulaire

Donc, cela ne fonctionne pas:

.mat-progress-bar-buffer { 
    background-color: $white; 
} 

Que puis-je essayer?

Éditer: here est un simple plunker pour jouer avec.

+0

essayé importante! – Hareesh

+0

Oui, bien sûr :) – Zlatko

+0

Je ne suis pas sûr qu'ils aient utilisé 'background-image' avec du svg dans' .mat-progress-bar-background'. – Hareesh

Répondre

1

Vous ne savez pas si cela sera meilleur, mais puisque/deep/et >>> seront déconseillés par le support des navigateurs, angulaire a sa propre façon d'émuler en utilisant ::ng-deep et est le moyen préféré jusqu'à ce qu'une meilleure solution soit trouvée.

Documentation on angular dit que ce sera dépréciée cependant sur github mention de VICB qu'ils ont aucun plan pour retirer ::ng-deep dans un avenir proche.

L'utilisation est similaire à /deep/:

::ng-deep .mat-progress-bar-buffer {}

+0

Je sais/deep/s'en va, mais j'en ai besoin pour l'instant. Quoi qu'il en soit, TIL à propos de ': host :: ng-deep' :) – Zlatko

1

Eh bien, cela est dû à ViewEncapsulation. Si j'ajoute /deep/ .mat-progress-bar-buffer, le style est appliqué.

J'aimerais toujours trouver une meilleure solution (avec/deep/étant presque disparu).