Asignación masiva de clases CSS en Angular

Con la directiva ngClass es posible activar y desactivar un conjunto de clases CSS en una etiqueta. La directiva toma como valor un objeto, cuyas claves serán las clases, y sus valores - valores booleanos. La clase se activará si se establece su valor en true, y se desactivará si es false.

Veámoslo en la práctica. Supongamos que tenemos las siguientes clases:

app/app.component.css.blue {
  color: blue;
}

.bold {
  font-weight: bold;
}

Veamos con ejemplos cómo activar y desactivar estas clases para un bloque.

Ejemplo

Activemos una clase y desactivemos otra:

app/app.component.html<div [ngClass]="{blue: true, bold: false}">
  text
</div>

Ejemplo

Supongamos que los estados de las clases se almacenan en propiedades de la clase:

app/app.component.tsexport class AppComponent {
  public isBlue: boolean = true;
  public isBold: boolean = false;
}

Vinculemos la visibilidad de la clase en función de los valores de nuestras propiedades:

app/app.component.html<div [ngClass]="{blue: isBlue, bold: isBold}">
  text
</div>

Ejemplo

La propiedad puede contener un objeto completo con clases y estados:

app/app.component.tsexport class AppComponent {
  public styles = {
    blue: false,
    bold: true,
  }
}

Vinculemos este objeto a nuestro bloque:

app/app.component.html<div [ngClass]="styles">
  text
</div>

Ejemplo

Se pueden obtener los valores para nuestro objeto de otras propiedades de la clase:

app/app.component.tsexport class AppComponent {
  public isBlue: boolean = false;
  public isBold: boolean = true;

  public styles = {
    blue: this.isBlue,
    bold: this.isBold,
  }
}

Vinculemos este objeto a nuestro bloque:

app/app.component.html<div [ngClass]="styles">
  text
</div>

Tareas prácticas

Задание 1

Cree dos clases CSS. Que una de ellas defina el fondo del bloque, y la segunda - el tamaño de la fuente.

Задание 2

Cree dos botones. Que al hacer clic en el primer botón se alterne la primera clase, y al hacer clic en el segundo - se alterne la segunda clase.