CSS3:未经检查的伪类

2022-01-10 00:00:00 css-selectors css pseudo-class

我知道有一个官方的 CSS3 :checked 伪类,但是有没有一个 :unchecked 伪类,它们有相同的浏览器支持吗?

I know there is an official CSS3 :checked pseudo-class, but is there an :unchecked pseudo-class, and do they have the same browser support?

Sitepoint 的参考资料 没有提到,但是这个 whatwg 规范(不管是什么)的作用.

Sitepoint's reference doesn't mention one, however this whatwg spec (whatever that is) does.

我知道将 :checked:not() 伪类结合起来可以达到相同的结果,但我还是很好奇:

I know the same result can be achieved when the :checked and :not() pseudo-classes are combined, but i'm still curious:

input[type="checkbox"]:not(:checked) {
    /* styles */
}

w3c 推荐相同的技术

The w3c recommends the same technique

可以使用否定伪类来选中未选中的复选框:

An unchecked checkbox can be selected by using the negation pseudo-class:

:not(:checked)

推荐答案

:unchecked 没有定义在 Selectors 或 CSS UI level 3 specs 中,也没有出现在 Level 4 Selectors 中.

:unchecked is not defined in the Selectors or CSS UI level 3 specs, nor has it appeared in level 4 of Selectors.

事实上,W3C 的引用取自 Selectors 4 规范.由于 Selectors 4 建议使用 :not(:checked),因此可以安全地假设没有对应的 :unchecked 伪.:not():checked 的浏览器支持是相同的,所以这应该不是问题.

In fact, the quote from W3C is taken from the Selectors 4 spec. Since Selectors 4 recommends using :not(:checked), it's safe to assume that there is no corresponding :unchecked pseudo. Browser support for :not() and :checked is identical, so that shouldn't be a problem.

这似乎与 :enabled:disabled 状态不一致,尤其是因为一个元素既不启用也不禁用(即语义完全不适用),但是对于这种不一致似乎没有任何解释.

This may seem inconsistent with the :enabled and :disabled states, especially since an element can be neither enabled nor disabled (i.e. the semantics completely do not apply), however there does not appear to be any explanation for this inconsistency.

(:indeterminate 不计算在内,因为一个元素同样不能是未检查、检查或不确定的,因为语义不适用.)

(:indeterminate does not count, because an element can similarly be neither unchecked, checked nor indeterminate because the semantics don't apply.)

相关文章