:checked伪类在Chrome中不起作用

时间:2012-12-24 22:41:12

标签: html css css3 checkbox css-selectors

我正在使用此css创建自定义复选框:

input[type="checkbox"] {
    background: transparent;
    border: inherit;
    width: auto;
}
input[type=checkbox] {
    display: none;
}
input[type=checkbox] + input + label,
input[type=checkbox] + label,
div:not(#foo) > input[type=checkbox] + label,
div:not(#foo) > input[type=checkbox] + input + label {
    cursor: pointer;
    height: 16px;
    padding: 0 0 0 18px;
    background: transparent url(/assets/images/checkbox-unchecked.png) no-repeat left 3px;
}
input[type=checkbox]:checked + input + label,
input[type=checkbox]:checked + label,
div:not(#foo) > input[type=checkbox]:checked + label,
div:not(#foo) > input[type=checkbox]:checked + input + label {
    background: transparent url(/assets/images/checkbox-checked.png) no-repeat left 3px;
}
.ie6 input[type=checkbox],
.ie7 input[type=checkbox],
.ie8 input[type=checkbox] {
    display: inline-block;
    *display: inline;
    *zoom: 1;
}

这是我的html标记:

<div class="editor-label">
    <input class="check-box" data-val="true" id="Persistent" name="Persistent" type="checkbox" value="true" />
    <input name="Persistent" type="hidden" value="false" />
    <label for="Persistent">Keep me!</label>
</div>

input元素由@Html.EditorFor(model => model.BooleanProp) Razor创建。此代码在Chrome中运行正常。实际上在Chrome中,当我们点击复选框时,我们会在点击提交bottun后看到效果(实际上我的意思是更改标签的背景图像,显示复选框是否已选中)。好吗?

更新

这是demo

1 个答案:

答案 0 :(得分:6)

我认为Webkit存在跟随伪选择器的链式+选择器的问题

交换... + input + label的链式... ~ label选择器。

例如:

div:not(#foo) > input[type=checkbox] ~ label