Replay

Apprendre Angular en 1h

Je me donne un objectif: vous faire découvrir et apprendre Angular en 1 heure: composant, syntaxe dans les templates, les directives, les signaux, les routeurs, les services, l'injection de dépendances, les observables et les requêtes HTTP. Le nécessaire pour faire une application Angular !.

Skip to content

Vous souhaitez recevoir de l'aide sur ce sujet ? rejoignez la communauté Angular.fr sur Discord.

Les Style Bindings dans Angular

Tout comme les classes, Angular permet également de manipuler directement les styles CSS de manière dynamique. C'est comme avoir un styliste qui ajuste en temps réel la tenue d'une personne en fonction des circonstances !

1. Liaison d'une propriété style unique

La syntaxe la plus simple pour lier un style est d'utiliser [style.propriété]="valeur".

ts
import { Component } from '@angular/core';

@Component({
  selector: 'app-user',
  standalone: true,
  template: `
    <div [style.display]="isVisible ? 'block' : 'none'">
      {{ user.name }}
    </div>
  `
})
export class UserComponent {
  isVisible = true;
}

2. Liaison avec unités

Pour les propriétés qui nécessitent des unités, Angular propose une syntaxe spéciale :

ts
import { Component } from '@angular/core';

@Component({
  selector: 'app-user',
  template: `
    <div [style.height.px]="cardHeight">
      {{ user.name }}
    </div>
  `
})
export class UserComponent {
  cardHeight = 200;
}

ASTUCE

Cette syntaxe évite d'avoir à concaténer l'unité manuellement. Angular s'en charge pour nous !

3. Liaison multiple avec une chaîne de caractères

ts
import { Component } from '@angular/core';

@Component({
  selector: 'app-user',
  template: `
    <div [style]="userCardStyles">
      {{ user.name }}
    </div>
  `
})
export class UserComponent {
  userCardStyles = 'display: flex; padding: 16px; background-color: #f5f5f5';
}

4. Liaison avec un objet de styles

ts
import { Component } from '@angular/core';

@Component({
  selector: 'app-user',
  template: `
    <div [style]="userStyles">
      {{ user.name }}
    </div>
  `
})
export class UserComponent {
  userStyles = {
    display: 'flex',
    padding: '16px',
    backgroundColor: 'var(--primary-color)',
    fontSize: '1.2rem'
  };
}

ATTENTION

Comme pour les classes, lors de l'utilisation d'un objet pour les styles, Angular utilise l'opérateur === pour la détection des changements. Pour appliquer des modifications, il faut créer une nouvelle instance de l'objet.

5. Combinaison des approches

On peut combiner différentes approches de style binding :

ts
@Component({
  template: `
    <div [style]="baseStyles"
         [style.color]="textColor"
         [style.font-size.px]="fontSize">
      {{ user.name }}
    </div>
  `
})

BONNES PRATIQUES

  • Utilisez la liaison simple ([style.propriété]) pour les styles dynamiques isolés
  • Préférez l'approche objet pour gérer plusieurs styles dynamiques
  • Gardez les styles statiques dans vos fichiers CSS
  • Utilisez des variables CSS (custom properties) pour une meilleure maintenabilité

PRÉCAUTION

En cas de conflit entre plusieurs bindings de style sur la même propriété, Angular applique des règles de précédence pour déterminer quel style sera appliqué.