Nella maggior parte dei casi, la classe css che applichiamo a un controllo è più che sufficiente a stilizzarlo. Tuttavia, esistono casi in cui in vogliamo applicare anche degli stili inline tramite l'attributo HTML style in base a determinate condizioni. Angular ci permette di aggiungere dinamicamente uno stile ad un controllo tramite la direttiva ngStyle.
Questa direttiva accetta in input un oggetto dove ogni proprietà corrisponde al nome dello stile CSS che vogliamo applicare, e il valore della proprietà corrisponde al valore dello stile. Il codice HTML è banale in quanto dobbiamo mettere in binding la direttiva con una proprietà del component (styles in questo caso).
<div [ngStyle]="styles">Questo div ha stili dinamici da binding</div>
Nel component, dobbiamo valorizzare la proprietà in base alle nostre necessità.
styles: {}; ... setStyles() { this.styles = { 'background-color': this.soldOut ? 'red' : 'white'; }; }
Grazie a questa tecnica possiamo applicare stili CSS dinamicamente, senza dover creare tante piccole classi CSS per ogni possibile combinazione di dati.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Ottimizzare il mapping di liste di tipi semplici con Entity Framework Core
Limitare le richieste lato server con l'interactive routing di Blazor 8
Definire stili a livello di libreria in Angular
Creazione di componenti personalizzati in React.js con Tailwind CSS
Evitare la script injection nelle GitHub Actions
Code scanning e advanced security con Azure DevOps
Utilizzare la session affinity con Azure Container Apps
Gestire undefined e partial nelle reactive forms di Angular
Short-circuiting della Pipeline in ASP.NET Core
Come migrare da una form non tipizzata a una form tipizzata in Angular
Miglioramenti nelle performance di Angular 16
Personalizzare l'errore del rate limiting middleware in ASP.NET Core