c# - .NET/CSS Foreach 复选框独立样式

标签 c# css razor

我有一个 foreach 循环创建 CheckBoxes,导致它们都具有相同的 ID。我有一些 CSS,但是当您选中任何框时,它会将 css 放到第一次迭代中,我该如何添加一些动态 ID 之类的东西以仅将 css 添加到所选框?

循环:

@foreach (var item in Model.Where(p => p.UserTable.ID == ViewBag.UserTableID))
{
    <tr>
        <td>
            <div class="select">
                <input type="checkbox" id="select" name="" />
                <label for="select"></label>
            </div>

CSS:

.select {
width: 20px;
position: relative;
}

.select label {
    cursor: pointer;
    position: absolute;
    width: 20px;
    height: 20px;
    top: 0;
    left: 0;
    background: #eee;
    border: 1px solid #ddd;
}

    .select label:after {
        opacity: 0.2;
        content: '';
        position: absolute;
        width: 9px;
        height: 5.5px;
        background: transparent;
        top: 4.8px;
        left: 5.4px;
        border: 3px solid #333;
        border-top: none;
        border-right: none;
        transform: rotate(-45deg);
    }

.select label:hover::after {
opacity: 0.5;
}

.select input[type=checkbox]:checked + label:after {
opacity: 1;
}

最佳答案

为什么不直接为每个元素分配它们的元素 ID?

<div class="select">
    <input type="checkbox" id="select_@item.ID" />
    <label for="select"></label>
</div>

除非您在该列表中有重复项,否则它们将始终是唯一的。

顺便说一下:你的 View 不应该过滤掉元素,它应该只提供它需要的元素(Where 应该在数据库级别完成)

关于c# - .NET/CSS Foreach 复选框独立样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48864684/

相关文章:

c# - 如何在ajax调用后重置表单

c# - 我可以更改用户的键盘输入吗?

css - 如何将多个三 Angular 形添加到同一元素?

css - 在 IE 选项中添加 css 样式

javascript - slice() 不能与 jQuery 一起正常工作?

asp.net-mvc - .net Razor 替代 PHP echo

javascript - asp.net mvc 使用 Javascript 渲染局部 View

C# 测试 - 构造函数调用中的模拟类

c# - 匹配以随机内容开头的可选模式

c# - Windows ML 学习模型是否可以通过 UWP 之外的 C# 访问?