是的,给定以下 HTML:
<input type="checkbox" id="test" /><label for="test">Click to check</label>
和CSS:
label {
color: #f00;
}
input {
display: none;
}
input[type=checkbox]:checked + label {
color: #0f0;
}
label {
color: #f00;
}
input {
display: none;
}
input[type=checkbox]:checked + label {
color: #0f0;
}
<input type="checkbox" id="test" checked/>
<label for="test">Click to check</label>
JS 小提琴演示。
当然,这取决于实现:checked
伪类的浏览器。
我使用了属性等于符号来指定检查后的label
元素,但由于只能选择或,因此可以安全地省略该特异性。input
type="checkbox"
checkbox
radio
您还可以在兼容的浏览器中使用与::after
伪元素及其content
属性一致的相同方法,更改文本以反映复选框的状态。例如,使用以下 HTML:
<input type="checkbox" id="test" /><label for="test">Click to</label>
和CSS:
label {
color: #f00;
}
input {
display: none;
}
input[type=checkbox]:checked + label {
color: #0f0;
}
input[type=checkbox] + label::after {
content: ' check';
}
input[type=checkbox]:checked + label::after {
content: ' uncheck';
}
label {
color: #f00;
}
input {
display: none;
}
input[type=checkbox]:checked + label {
color: #0f0;
}
input[type=checkbox] + label::after {
content: ' check';
}
input[type=checkbox]:checked + label::after {
content: ' uncheck';
}
<input type="checkbox" id="test" checked/>
<label for="test">Click to</label>
参考: