在CSS中可以单独使用伪元素吗?

问题描述:

根据W3C,选择器的定义不包括伪元件: https://www.w3.org/TR/css3-selectors/#selector-syntax在CSS中可以单独使用伪元素吗?

上述链接表示:

选择器是简单的选择器 的一个或多个序列的一个链由组合器分隔。

,它也表示:

一个简单的选择是任一种类型的选择器,通用选择, 属性选择器,类选择,ID选择,或伪类。

关于如何伪元素应该被使用,它说:

一个伪元素可以被附加以简单 选择器中的选择器的最后一个序列。

只有一个伪元件可以每选择出现,并且如果存在它 必须简单的选择器,它表示 受试者选择器的序列之后出现。

那么这是否意味着伪元素只能作为“有效”选择器的后缀,不应该单独使用?

+1

选择器4 *有些*通过使“选择器”,它可以被施加到选择器(S)的部分的任何部分或组合的真正抽象术语,以及替换选择器3的定义阐明本用“复杂选择器”(和“简单选择器序列”变成“复合选择器”)。即便如此,即使在CSSWG中,伪元素是否应该被视为复杂选择器的一部分仍然存在争议(选择器的当前措词-4强烈暗示它不是)。 – BoltClock

是否意味着伪元素只能作为“有效” 选择器的后缀,不应该单独使用?

您的结论不对,因为universal selector*可以省略。

如果*表示的通用选择[...]是立即 后跟一个pseudo-element,则*可以被省略,并且 通用选择的存在暗示。

因此,您可以单独使用伪元素,例如, ::before,因为在引擎盖下它将被视为*::before

::before { 
 
    content: 'Hello!'; 
 
}

+0

@LGSon谢谢,我试图澄清它。 – Oriol