<ul class="days">
<liclass="day" *ngFor="let day of currentDays; let i = index"(click)="setStyle()">
{{day}}
</li>
</ul>
我的问题是如何在列表中精确指定元素,并为其添加样式,当我使用ngClass时,样式将被添加到所有元素中?是否可以通过方法添加引用来传递元素并设置样式?
<ul class="days">
<liclass="day" *ngFor="let day of currentDays; let i = index"(click)="setStyle()">
{{day}}
</li>
</ul>
我的问题是如何在列表中精确指定元素,并为其添加样式,当我使用ngClass时,样式将被添加到所有元素中?是否可以通过方法添加引用来传递元素并设置样式?
<div [ngStyle]="{'background-color':isTrue === true ? 'green' : 'red' }"></<div>
或者参考StackBlitz链接获取另一种解决方案。
你可以使用
<li [class.your-class]="expression">
例如:
<li [class.mat-elevation-z10]="i === selectedElement">
或者您可以使用带有表达式的ngClass
<li [ngClass]="{'first': true, 'second': true, 'third': false}">
其中first
、second
和third
是你的类,true
、true
、false
是表达式。在上面的例子中,first
和second
类都会被应用。
您可以为每个元素
设置不同的类
<ul class="days">
<li *ngFor="let day of currentDays; let i = index" [class]="'day'+(index+1)">
{{day}}
</li>
</ul>
在 CSS 中为每个元素设置样式:
.day1{
...
}
您可以使用ngClass本身来设置条件。您可以将RequiredDay字符串替换为变量。
<ul class="days">
<li [ngClass]="{'desiredClass':day === 'RequiredDay'}" *ngFor="let day of currentDays; let i = index" (click)="setStyle()">
{{day}}
</li>
</ul>