📜  ng class 多个类名 (1)

📅  最后修改于: 2023-12-03 14:44:35.053000             🧑  作者: Mango

使用 ngClass 添加多个类名

在使用 Angular 应用程序时,你可能需要同时添加多个 CSS 类名到一个元素中。这时候,你可以使用 ngClass 指令。该指令允许你动态添加或删除 CSS 类名,以及根据表达式返回的值添加或删除类名。

基本语法

ngClass 指令可以通过两种不同的方式使用。一种是通过表达式,另一种是通过字符串。

通过表达式添加类名

ngClass 可以根据表达式的值来添加或删除类名。你可以在模板中将表达式写在双引号中,并将它们用逗号分隔开。

<div [ngClass]="{'red-text': isRed, 'bold-text': isBold}">
  Some text
</div>

在此示例中,ngClass 根据 isRedisBold 变量的值来添加或删除类名 red-textbold-text

通过字符串添加类名

ngClass 也可以使用字符串添加类名。你可以将类名用空格分隔开,从而同时添加多个类名。

<div [ngClass]="'custom-class-1 custom-class-2'">
  Some text
</div>

在此示例中,ngClass 将同时添加两个类名 custom-class-1custom-class-2

动态添加类名

你可以动态添加或删除类名,通过将表达式写成一个函数,并返回组合的类名。

<div [ngClass]="getClassNames()">
  Some text
</div>
getClassNames() {
  let classNames = 'red-text ';

  if (this.isBold) {
    classNames += 'bold-text ';
  }

  return classNames;
}

在此示例中,当 getClassNames() 返回 red-textbold-text 类名时,它将被添加到 div 元素上。

更加复杂的表达式

除了简单的 truefalse 值之外,ngClass 还支持更加复杂的表达式。

<div [ngClass]="[
  isRed ? 'red-text' : '',
  isBold ? 'bold-text' : ''
]">
  Some text
</div>

在此示例中,ngClass 使用了一个数组,该数组包含了两个元素。元素中的表达式会返回类名或空字符串。如果表达式的值为 true,则会添加对应的类名;如果表达式的值为 false,则会添加一个空字符串。

总结

通过 ngClass 指令,您可以轻松地为一个元素添加多个 CSS 类名。这个指令也允许您动态地添加或删除类名,并添加更加复杂的表达式,使您的应用程序更加灵活。