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
Definire stili a livello di libreria in Angular
Recuperare App Service cancellati su Azure
Utilizzare il metodo IntersectBy per eseguire l'intersection di due liste
Eliminare una project wiki di Azure DevOps
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Ottimizzazione dei block template in Angular 17
Gestione dei nomi con le regole @layer in CSS
Eseguire query per recuperare il padre di un record che sfrutta il tipo HierarchyID in Entity Framework
Path addizionali per gli asset in ASP.NET Core MVC
Collegare applicazioni server e client con .NET Aspire
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
I più letti di oggi
- Repaint, Reflow e Compositing: Come Funziona il Rendering nel Browser
- Esaminare documenti con namespace con LINQ e XDocument
- .NET Conference Italia 2024 - Milano
- Disponibile la release finale di Moonlight 1.0
- Usare la dependency injection built-in nelle Azure Function
- Impostare il lazy loading con Entity Framework 4.0
- Spaziatura tra i caratteri in Silverlight 5
- Mostrare finestre di alert e di conferma in Silverlight 2.0