css2中对伪类和伪元素的定义相当模糊,所幸css3中有了较为明确的定义
1.伪类存在的意义是为了通过选择器找到那些不存在于DOM树中的信息以及不能被常规CSS选择器获取到的信息。
例如: :link、:visited、:hover、:active、:focus、:target(选择活动的锚节点)
伪元素在DOM树中创建了一些抽象元素(创建虚拟容器),这些抽象元素是不存在于文档语言里的(即html源码中找不到的)
例如: ::before、::after、::first-line(第一行)、::first-letter(第一个字符)