pseudo-class与pseudo-element的不同点与相同点

关于两者的区别,其实是很古老的问题。但是时至今日,由于各种网络误传以及一些不负责任的书籍误笔,仍然有相当多的人将伪类与伪元素混为一谈,甚至不乏很多CSS老手。早些年刚入行的时候,我自己也被深深误导,因为论坛里的帖子大多不关心这种概念的细微差别,即使有人出来说一句:“这两个是不同的”,也只是被更多的帖子淹没掉而已。所以觉得有必要写下这些我所知的部分,这里着重写的是为什么这两者不同,以及一些平时容易错过的细节。

无论是伪类还是伪元素,都属于CSS选择器的范畴。所以它们的定义可以在CSS标准的选择器章节找到。分别是 CSS2.1 Selectors 和 CSS Selector Level 3,两者都已经是推荐标准。

相同点:

Pseudo-class和pseudo-element的语法都是以selector或者selector.class开始的。

不同点:

Pseudo-class的操作对象是文档树中已有的元素,而pseudo-element则创建了一个文档数外的元素。因此,Pseudo-class和pseudo-element的区别在于:有没有创建一个文档树之外的元素。Pseudo-class只有一个冒号,pseudo-element有两个冒号

引用自网页:http://www.mamicode.com/info-detail-2496434.html