gpt4 book ai didi

javascript - 带有复选框和 NgFor 的自定义 CSS

转载 作者:行者123 更新时间:2023-11-28 13:53:13 24 4
gpt4 key购买 nike

当使用 *ngFor 进行迭代时,我试图获得一个“可点击”的自定义复选框。我有自定义 CSS,但点击事件没有任何效果。

我猜是因为标签上的 for 属性,但我不知道如何修复它。

堆栈 Blitz :https://stackblitz.com/edit/angular-4znmwv?embed=1&file=src/app/app.component.css&view=editor

HTML:

<div *ngFor="let item of data">
<input type="checkbox" [checked]= "item.selected" (change)="setChange(item, $event)">
<label htmlFor="{{item.name}}">{{item.name}}</label>
</div>

CSS:

input[type="checkbox"] {
position: absolute;
height: 1px;
width: 1px;
overflow: hidden;
clip: rect(1px 1px 1px 1px); /* IE6, IE7 */
clip: rect(1px, 1px, 1px, 1px);
}


input[type="checkbox"] + label {
display: block;
position: relative;
padding: 0 1.5rem;
}


input[type="checkbox"] + label::before {
content: '';
position: relative;
display: inline-block;
margin-right: 10px;
width: 20px;
height: 20px;
color: #2a3037;
background-color: #fff;
border-color: #1c8d3e;
}

input[type="checkbox"]:checked + label::before {
color: #fff;
background-color: #138630;
border-color: #000000;
}

input[type="checkbox"]:checked + label::after {
content: '';
position: absolute;
top: 3px;
left: 27px;
border-left: 2px solid black;
border-bottom: 2px solid black;
height: 6px;
width: 13px;
transform: rotate(-45deg);
}

input[type="checkbox"]:focus + label::before {
outline: #5d9dd5 solid 1px;
box-shadow: 0 0px 8px #5e9ed6;
}

input[type="checkbox"]:disabled + label {
color: #575757;
}

input[type="checkbox"]:disabled + label::before {
background: #ddb862;
}

最佳答案

像这样尝试,我刚刚为已按元素名称设置的复选框 ID 的标签基础设置了 for 属性

<div *ngFor="let item of data">
<input type="checkbox" [id]="item.name">
<label [for]="item.name">{{item.name}}</label>
</div>

demo 🚀

关于javascript - 带有复选框和 NgFor 的自定义 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59324854/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com