html - 样式化的复选框标签不会选中

标签 html css checkbox label

我在使用样式化的复选框/标签组合时遇到了这个问题,当我点击它时标签似乎不会被选中。页面上有一个用于“全选”复选框的按钮,它可以正常工作,但点击通常没有任何反应。

代码

<td><div class="checkbox"><input class="check" type="checkbox"><label class="checklabel" for="check"></div></td>

.checkbox {
        margin: 3px auto;
        width: 25px;
        position: relative;
}
.checklabel {
        cursor: pointer;
        position: absolute;
        width: 25px;
        height: 25px;
        top: 0;
        left: 0;
        background: #eee;
        border:1px solid #ddd;
}
.checkbox label:after {
        opacity: 0.2;
        content: '';
        position: absolute;
        width: 9px;
        height: 5px;
        background: transparent;
        top: 6px;
        left: 7px;
        border: 3px solid #333;
        border-top: none;
        border-right: none;

        transform: rotate(-45deg);
}
.checklabel:hover::after {
        opacity: .5;
}
.checkbox input[type=checkbox]:checked + label:after {
        opacity: 1;
}

编辑:

好的,非常感谢,需要 ID 的 for 标签解决了这个问题。现在的问题是页面上有多个复选框,但即使您单击其中任何一个,也只会选中第一个。有什么想法吗?

最佳答案

您没有关闭 label 标签,您需要提供一个与 for 属性同名的 id

.checkbox {
  margin: 3px auto;
  width: 25px;
  position: relative;
}

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

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

.checklabel:hover::after {
  opacity: .5;
}

.checkbox input[type=checkbox]:checked+label:after {
  opacity: 1;
}
<div class="checkbox">
<input id="check" class="check" type="checkbox"><label class="checklabel" for="check"></label>
</div>

关于html - 样式化的复选框标签不会选中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43350417/

相关文章:

css - 如何使用 CSS 对齐多个 div

javascript - Ajax-为什么我得到错误函数而不是成功函数?

javascript - jQuery 选择器在特定 HTML 元素之后检索内容

javascript - 在 Jquery 中触发复选框更改类

javascript - 至少检查复选框组中的复选框(!)

javascript - 如何使复选框检查在两个复选框组之间切换?

html - 如何在 Django 中显示选项卡或分页中的列表?

html - css不申请asp.net超链接

css - 如何修复悬停时背景图像的 CSS 过渡?

html - 尽管屏幕发生变化,但仍保持菜单中的文本居中