Angular 6 - 更改复选框样式是否已选中

问题描述 投票:0回答:1

我有一个复选框列表,我想强调检查的那个。我的代码如下所示:

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.当我加载页面时,默认选中的复选框正确地“已检查”类,但CSS未应用,即它没有加下划线 2.当我手动选择一个复选框时,“检查​​”类正确应用,CSS也适用 3.当我手动选择另一个复选框时,“已检查”类正确地从一个切换到另一个,但前者的CSS不会更新,即前一个复选框仍然带有下划线

谢谢你的建议。

css angular checkbox css-selectors
1个回答
1
投票
.custom-control-input:checked~.custom-control-indicator

:checked并不意味着它有checked类,但它意味着它实际上已被检查。如果要选择checked类,请使用点代替冒号:

.custom-control-input.checked~.custom-control-indicator
© www.soinside.com 2019 - 2024. All rights reserved.