伪元素和伪类的根据区别就是:前者是创建出了一个新元素,而后者是一个已存在但你不能直接看到的元素。
伪元素
伪元素本身不存在在DOM文档中,它需要人为的去创建它。且就算你创建了伪元素,它也只是逻辑上存在,实际上也并不存在DOM文档中,也就是说你无法使用JS去获取改变它。

伪类
伪类它存在于DOM文档中,但如果你没有特别的去声明它,你就看不到它。

总结
- 伪元素是创建了一个新元素,而伪类本身就存在只不过不用特别声明
- 伪元素使用
:或者::声明(前者是css2的声明方式,后者是css3),而伪类只能使用: (建议在H5中伪元素统一用:: 以便区分伪元素和伪类) - 伪元素只能同时使用一个,伪类可以同时使用多个