Css pseudo-classes 没有任何选择器,可以吗?

Css pseudo-classes without any selector, is it ok?

喜欢的选择器

.some-class :first-child

选择 .some-class 中的第一个 child 在所有浏览器中都按预期工作,即使在 IE8 中也是如此。

但是移动 Chrome 的 'Reduce data option' 删除了 .some-class:first-child 之间的 space 并通过将样式应用到 CSS 来打破 CSS .some-class 元素本身。在其他情况下,如 .class1 .class2 Chrome 保持 space 不变。可能,它认为.some-class:first-child之间的space是non-semanticspace,因为它认为不可能有pseudo-class ] 没有某种选择器。

但我已经检查了标准,它并没有在任何地方说明 pseudo-class 必须有一个选择器。同时,所有带有 pseudo-classes 的示例都包含一个元素选择器,例如

p:first-child

所以我很困惑。这个 CSS 选择器不正确还是 Chrome 的 'Reduce data usage' 有错误?

我猜这是一个错误。 你应该能够解决它 .some-class *:first-child

:first-child 作为独立选择器是有效的,这似乎是 Chrome 移动版本中的一个错误。我们可以用 W3C's CSS Validator.

来确认这一点
:first-child { background: #F00; }

Congratulations! No Error Found.

事实上,Selectors Level 3 specificationSelectors 部分中列出的所有内容都可以作为独立选择器使用。我想 :first-child 的示例还包含元素选择器的原因是为了避免混淆并展示如何在该特定元素上使用它。