我有一个复选框列表,我想在选中的复选框下划线。我的代码如下所示:
TS文件:
currentQuarter: string;
quarters: Observable<MeseRiferimento[]>;
q1: MeseRiferimento = new MeseRiferimento();
q2: MeseRiferimento = new MeseRiferimento();
ngOnInit() {
q1.desc = "One";
q1.id = "1";
q2.desc = "Two";
q2.id = "2"
currentQuarter = q1.id;
quarters.of([q1, q2]);
}
isQuarterSelected(q: MeseRiferimento): boolean {
return this.currentQuarter === this.getKeyFromQuarter(q);
}
HTML文件:
<div *ngFor="let q of quarters | async" class="col-1 my-auto m-stati">
<label class="custom-control custom-checkbox ra-check">
<input type="checkbox" class="custom-control-input" [ngClass]="{'checked': isQuarterSelected(q) }">
<span class="custom-control-indicator"></span>
<span class="custom-control-description">{{q.descrizione}}</span>
</label>
</div>
CSS文件:
.custom-control-input:checked~.custom-control-indicator {
color: #fff;
background-color: #3bb8eb;
}
这些是此代码的问题:
1.当我加载页面时,默认选中的复选框已正确选中了“ checked”类,但未应用CSS,即未加下划线
2.当我手动选择一个复选框时,“ checked”类正确适用,而CSS也适用
3.当我手动选择另一个复选框时,“ checked”类正确地从一个切换到另一个,但是前者的CSS不会更新,即,前一个复选框带有下划线
谢谢您的建议。
答案 0 :(得分:1)
.custom-control-input:checked~.custom-control-indicator
:checked
并不意味着它具有checked
类,但是它实际上已经过检查。如果要选择checked
类,请使用点代替冒号:
.custom-control-input.checked~.custom-control-indicator