Et comme toujours avec Angular, on peut tout combiner ! Vous pouvez appliquer un objet de base via [style]="obj", tout en forçant certaines propriétés individuelles via [style.prop]="..." sur le même élément.
Regardez comment ces différentes syntaxes cohabitent parfaitement sur une seule balise <div>. Les liaisons individuelles ([style.xxx]) écrasent toujours les valeurs globales du même nom.
Modifiez la couleur du texte et sa taille. Ces deux éléments gèrent leur CSS de manière indépendante tout en conservant les styles de l'objet de base !
import { Component } from '@angular/core';
@Component({
selector: 'app-user',
template: `
<!-- L'attribut magique avec toutes les combinaisons CSS ! -->
<div [style]="baseStyles"
[style.color]="textColor"
[style.fontSize.px]="fontSize">
{{ user.name }}
</div>
<input type="color" [(ngModel)]="textColor">
<input type="range" [(ngModel)]="fontSize" min="12" max="64">
`
})
export class CombinationStyleComponent {
user = { name: 'John Doe' };
// L'objet CSS de base
baseStyles = {
display: 'inline-block',
backgroundColor: '#ffffff',
padding: '32px 48px',
borderRadius: '16px'
};
// Les variables individuelles
textColor = '#0d6efd'; // Bleu par défaut
fontSize = 24; // Taille en px
}