用突出显示的图像跨浏览器替换HTML复选框



我有一个HTML复选框列表,我想将其更改为用户可以选择或取消选择的图像。

从本质上讲,如果可能的话,我正在尝试使用纯CSS来实现这样的功能。

我已经让它在Chrome中使用:

.check_test {
  width: 200px;
  height: 200px;
  background: blue;
  -webkit-appearance: none;
}
.check_test:checked {
  border: 2px solid blue;
}
<form>
  <input class="check_test" type="checkbox" name="check1" style="background-image: url(http://upload.wikimedia.org/wikipedia/commons/thumb/3/39/Croquetplayers.jpg/220px-Croquetplayers.jpg); " />
</form>

然而,根据犬科动物的说法,这对IE不起作用。

还有其他CSS选项可以达到同样的效果吗?如果没有,是否有一个简单的jQuery解决方案?

是的,使用label,您需要为复选框分配一个id。

http://jsfiddle.net/k47qcb7d/2/

.check_test:checked + label {
    position: relative;
}
.check_test:checked + label:before {
    display: block;
    content: "";
    height: 30px;
    width: 100%;
    background: black;
    position: absolute;
    left: 0;
    bottom: 0;
}

IE9+,但如果你使用jQuery来做选择器,我认为它可以在所有IE6上工作。

最新更新