Gắn hàng loạt lớp CSS trong Angular

Sử dụng directive ngClass có thể bật và tắt một tập hợp các lớp CSS ngay trong thẻ. Directive nhận một đối tượng làm giá trị, trong đó các khóa là các lớp, và giá trị - các giá trị boolean. Lớp sẽ được bật nếu giá trị của nó được đặt là true và bị tắt nếu là false.

Hãy xem xét trong thực tế. Giả sử chúng ta có các lớp sau:

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

.bold {
  font-weight: bold;
}

Hãy xem các ví dụ về cách bật và tắt các lớp này cho một khối.

Ví dụ

Bật một lớp và tắt lớp kia:

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

Ví dụ

Giả sử trạng thái của các lớp được lưu trong các thuộc tính của class:

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

Gắn khả năng hiển thị của lớp phụ thuộc vào giá trị của các thuộc tính của chúng ta:

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

Ví dụ

Thuộc tính có thể là một đối tượng chứa đầy đủ các lớp và trạng thái của chúng:

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

Gắn đối tượng này vào khối của chúng ta:

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

Ví dụ

Có thể lấy giá trị cho đối tượng của chúng ta từ các thuộc tính khác của class:

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

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

Gắn đối tượng này vào khối của chúng ta:

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

Bài tập thực hành

Задание 1

Tạo hai lớp CSS. Hãy để một trong số chúng xác định nền của khối và lớp còn lại - kích thước font chữ.

Задание 2

Tạo hai nút bấm. Hãy để việc nhấn vào nút đầu tiên chuyển đổi lớp thứ nhất, và nhấn vào nút thứ hai - chuyển đổi lớp thứ hai.