CSS中伪类、伪选择器和伪元素的区别

4

1
@SLaks:我想OP的反应会是“那个问题根本没有提到伪选择器!” - BoltClock
6
@SVS w3schools是学习编程最糟糕的网站之一。请查看http://w3fools.com/。 - Inquisitive
1
@Subhra:你是否已经查看过http://www.w3.org呢?我回答你的问题是因为尽管SVS和gar_onn所说的话可能不同,但是使用Google(特别是“伪选择器”)很难找到令人满意的结果。但是同时,我会对你的问题进行负评,因为它写得很差,并且没有任何研究的迹象…与你之前的问题不同。 - BoltClock
1
@BoltClock 首先感谢你的回答。嗯,我知道可能会有相同的重复问题,但是我还看到了“伪选择器”这个术语,这让我更加困惑了。在http://www.w3.org/上的任何内容都非常详细,我发现专家们回答相关部分更有用。我不介意被投下一些负分,重要的是我从帖子中学到了东西。 - Inquisitive
对于踩票太苛刻了... - frnhr
2
我发现这个问题很有用,所以点赞+1。 - Ahmed Masud
1个回答

21

伪类用于根据无法通过属性、ID或类(或DOM中可用的任何其他信息)表达的信息来选择元素。例如,:root:first-child:last-child:lang():not()

伪元素是模拟元素,您可以有选择性地将样式应用于其他实际元素的一部分,但它们本身不是DOM的成员。例如,内容片段,例如::first-line::first-letter,或生成的内容,例如::before::after

“伪选择器”是一个总称,用于覆盖两种选择器(或任何以至少一个:开头的选择器),但它本身是没有意义的,因为在选择器中,伪类和伪元素是两种根本不同的东西。


4
值得注意的是,伪元素在 CSS3 中才正式采用双冒号(::)语法,但为了向后兼容,它们仍然可以使用单冒号(:)。 - Daniel Imms
3
在经历了这么多的踩,我只想说谢谢你给出一个好的回答。我认为这个问题非常有价值,这帮助了我理解。谢谢! - Danny Bullis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接