您可以使用一些高级 CSS 选择器来完成此操作,前提<label>
是 是复选框。选择~
器称为通用兄弟选择器,将匹配元素之后的所有兄弟。
jsFiddle
CSS
input:checked ~ label {
opacity: 0.5;
}
HTML
<input type="checkbox" class="chk " checked="checked" id="img1" name="img1" value="0" />
<label for="img1">
<img class="img" src="https://www.google.com.au/images/srpr/logo4w.png" />
</label>
支持
仅支持:checked
IE9 及更高版本,如果您需要对 IE8 的支持,那么.checked
除了 CSS3:checked
选择器之外,您还可以使用一个类作为使用它。
JS
$('#img1').click(function () {
$(this).toggleClass('checked');
});
CSS
input:checked ~ label,
input.checked ~ label {
opacity: 0.5;
}
对于 < IE8 的支持,您应该使用更通用的 JavaScript 解决方案。
$('#img1').click(function () {
$('label[for=' + this.id + ']').toggleClass('checked');
});
label.checked {
opacity: 0.5;
}