无论是伪类还是伪元素,都属于CSS选择器的范畴。所以它们的定义可以在CSS标准的选择器章节找到。http://www.w3.org/TR/selectors/
伪类和伪元素的引入都是因为在文档树里有些信息无法被充分描述,比如CSS没有“段落的第一行”之类的选择器。
CSS Selector Level 3 为了区分这两者的混淆,而特意用冒号加以区分:
- 伪类用一个冒号表示 :first-child
- 伪元素则使用两个冒号表示 ::first-line
伪类一开始单单只是用来表示一些元素的动态状态,典型的就是链接的各个状态(LVHA)。随后CSS2标准扩展了其概念范围,使其成为了所有逻辑上存在但在文档树中却无须标识的“幽灵”分类。
伪元素则代表了某个元素的子元素,这个子元素虽然在逻辑上存在,但却并不实际存在于文档树中。
内容来自:http://www.swordair.com/blog/2012/12/606/
伪类:
- 动态伪类【 :link , :visited 、 :hover , :active , :focus 】
- 目标伪类【 :target 】
- 语言伪类【 :lang 】
- UI元素状态伪类【 :enabled , :disabled 、 :checked 】
- 结构伪类【 :root , :nth-child() , :nth-last-child() , :nth-of-type() , :nth-last-of-type() , :first-child , :last-child , :first-of-type , :last-of-type , :only-child:only-of-type , :empty 】
- 否定伪类【 :not() 】
伪元素:
- ::first-line
- ::first-letter
- ::before , ::after
- ::selection
参见:http://stackoverflow.com/questions/7492568/what-are-the-well-known-webkit-specific-pseudo-elements
It’s only work if somebody makes you do it.
Hvis du forteller meg nok en vits, så skal jeg slå deg til jorden.
欢迎来到上海,欢迎参观世博会!