我正在尝试为复选框使用自定义图像,如本问题所述:
我的复选框出现在网格中,因此不需要与它们关联的标签。但是,我发现如果标签不存在,则该问题中讨论的技术不起作用。
例如,这是相关的 css:
input[type=checkbox] {
opacity: 0;
}
input[type=checkbox] {
height: 17px;
width: 17px;
background: url('/resources/img/checkBox-unchecked.png') 0 0px no-repeat;
}
input[type=checkbox]:checked {
background: url('/resources/img/checkBox-checked.png') 0 0px no-repeat;
height: 17px;
width: 17px;
padding: 0 0 0 0px;
}
声明一个简单的input
并不会渲染图像:
<input type="checkbox">
但是,如果我修改 css,附加+ label
,并将标签附加到标记,如解决方案中所述,它可以工作:
input[type=checkbox] {
opacity: 0;
}
input[type=checkbox] + label {
height: 17px;
width: 17px;
background: url('/resources/img/checkBox-unchecked.png') 0 0px no-repeat;
}
input[type=checkbox]:checked + label {
background: url('/resources/img/checkBox-checked.png') 0 0px no-repeat;
height: 17px;
width: 17px;
padding: 0 0 0 0px;
}
<input type="checkbox"><label></label>
这按预期呈现。
为什么第一个解决方案不起作用?
我怎样才能在不添加不需要的标签的情况下实现这一点?