编辑:不敢相信我忘了指定,这个问题是在 IE8
我有一个带有一堆复选框的表单,如下所示:
HTML:
<input type="checkbox" class="checkbox" name="fields" id="Anesthesiology" /><label for="Anesthesiology">Anesthesiology</label>
CSS:
.checkbox {
display: none;
}
.checkbox + label {
position: relative;
display: block;
padding-left: 25px;
margin: 16px 0 0;
font: 13px/16px 'Trebuchet MS', Arial, sans-serif;
color: #656565;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-o-user-select: none;
user-select: none;
}
.checkbox + label:before {
content:" ";
display: block;
position: absolute;
left: 0;
width: 14px;
height: 14px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
-ms-border-radius: 3px;
-o-border-radius: 3px;
border-radius: 3px;
border: 1px solid #d1d1d1;
}
.checkbox.checked + label:after {
content:" ";
display: block;
width: 16px;
height: 17px;
background-image: url(../images/checkmark.png);
position: absolute;
top: -3px;
left: 2px;
}
这样做是隐藏默认复选框并创建一个新复选框作为标签之前的 :before(显示在 ie8 中)。单击标签时,将在复选框输入标签上附加一个类.checked
,然后应:after
显示复选标记背景图像。我也尝试在标签内使用 span 以获得相同的效果,但似乎没有任何效果。这些类已正确附加,但 :after 复选标记从未出现。
有什么想法吗?