关于二者的区别,实际上是很古老的问题。可是时至今日,因为各类网络误传以及一些不负责任的书籍误笔,仍然有至关多的人将伪类与伪元素混为一谈,甚至不乏不少CSS老手。早些年刚入行的时候,我本身也被深深误导,由于论坛里的帖子大多不关心这种概念的细微差异,即便有人出来讲一句:“这两个是不一样的”,也只是被更多的帖子淹没掉而已。因此以为有必要写下这些我所知的部分,这里着重写的是为何这二者不一样,以及一些平时容易错过的细节。html
不管是伪类仍是伪元素,都属于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有两个冒号code
引用自网页:http://www.mamicode.com/info-detail-2496434.htmlhtm