【发布时间】:2014-07-15 18:00:21
【问题描述】:
我知道你可以为选中的输入元素选择标签
<input id="rad1" type="radio" name="rad" value="1">
<label for="rad1">
<div>Radio 1</div>
</label>
通过选择
input:checked {...}
但是,如果还没有任何组选择的单选,是否有任何选择器可以选择单选框组的所有标签元素?例如
input:noselection { color: red; }
示例:尚未选择任何收音机:所有元素均为黑色;一旦选择了一个元素,这个单选就会变成绿色,而其他所有元素都是灰色的。
我可以添加一些类似下面的 js 来将一个类添加到包装 div 并对其进行选择,但是我想知道是否有任何本机 css3 选择器。
$("fieldset :radio").change(function() {
$(this).closest("div").addClass("answered"));
});
【问题讨论】:
-
只在
input:checked {}行之前使用input {...}? -
奇怪的是它似乎不受支持,尽管我从未问过它。但是,正如 DavidG 所暗示的那样,如果您将某些内容应用于所有输入,然后将某些内容应用于所有已检查的输入,那么您的集合就会有所不同,并且只能影响未检查的内容(即在已检查的情况下撤消该操作)。
-
虽然有
:not()可以反转:checked,但这仅适用于单个输入字段; “如果一个组中的所有单选按钮都未选中”没有选择器(或它们的组合)——你必须使用 JavaScript 来实现这种逻辑。
标签: html css css-selectors