伪类和伪元素的根本区别在于:它们是否创造了新的元素。
伪元素/伪对象:不存在DOM文档中,是虚拟的元素,是创建新元素。代表某个元素的子元素,这个子元素虽然在逻辑上存在,但却并不实际存在于文档树中。
伪类:存在DOM文档中,逻辑上存在但却未进行标识的分类。
W3C中对二者进行这样的描述:
伪类:用于向某些选择器添加特殊的效果
伪元素:用于将特殊的效果添加到某些选择器
这两句解释的很到位,你品,你细品~~
下边的文章对伪类和伪元素做出了详细的解释,建议阅读
链接: 伪元素和伪类的区别总结.