【发布时间】:2011-06-09 13:24:20
【问题描述】:
我有这个 CSS 规则...
input[checked="false"] + label {opacity: .6}
对于这个 HTML...
<input type="checkbox" checked="true" name="whatever" value="whatever" id="whatever">
<label for="whatever">Whatever</label>
而且我认为当我选中或取消选中它们时,它会变得不透明或半透明。 然而,事实证明 checked="true 属性不会在 DOM element.checked 发生变化时发生变化,因为前者只是 默认值。
因此,我用一些 JavaScript 引导它...
document.getElementById('whatever').addEventListener('change', toggleChecked, false);
function toggleChecked() {
this.setAttribute('checked', this.checked);
}
基本上,我的问题是这是否有必要。有没有办法根据其复选框的选中或不选中状态仅通过 CSS 更改标签的样式?
【问题讨论】:
-
false不是checked的有效值。它是 HTML 中的checked或 XHTML 中的checked="checked",如果未选中则什么都没有。 DOM 中的true和false是布尔值。 -
你说得有道理,但即使我只是使用
checked,取消选中该框也不会删除 HTML 属性,所以问题仍然存在。呃,站着,因为idealmachine提到了:checked伪类。
标签: javascript html css forms checkbox