Массовая привязка CSS классов в Angular
С помощью директивы ngClass
можно
включать и выключать в теге сразу набор
CSS классов. Директива значением принимает
объект, ключами которого будут классы, а
значениями - булевы значения. Класс будет
включен, если для него установлено значение
true
, и выключен, если false
.
Давайте посмотрим на практике. Пусть у нас есть следующие классы:
.blue {
color: blue;
}
.bold {
font-weight: bold;
}
Давайте посмотрим на примерах, как включать и выключать эти классы для блока.
Пример
Включим один класс и выключим другой:
<div [ngClass]="{blue: true, bold: false}">
text
</div>
Пример
Пусть состояния классов хранятся в свойствах класса:
export class AppComponent {
public isBlue: boolean = true;
public isBold: boolean = false;
}
Привяжем видимость класса в зависимости от значений наших свойств:
<div [ngClass]="{blue: isBlue, bold: isBold}">
text
</div>
Пример
В свойстве может быть целый объект с классами и состояниями:
export class AppComponent {
public styles = {
blue: false,
bold: true,
}
}
Привяжем этот объект к нашему блоку:
<div [ngClass]="styles">
text
</div>
Пример
Можно значения для нашего объекта получить из других свойств класса:
export class AppComponent {
public isBlue: boolean = false;
public isBold: boolean = true;
public styles = {
blue: this.isBlue,
bold: this.isBold,
}
}
Привяжем этот объект к нашему блоку:
<div [ngClass]="styles">
text
</div>
Практические задачи
Создайте два CSS класса. Пусть один из них определяет фон блока, а второй - размер шрифта.
Сделайте две кнопки. Пусть нажатие на первую кнопку тогглит первый класс, а нажатие на вторую - тогглит второй класс.