伪类和伪元素的引入是因为在文档树里有些信息无法被充分描述
伪类
概念:为处于某个状态的已有元素添加对应的样式,这个状态是根据用户行为而动态改变的。
它可以用于
设置鼠标悬停在元素上时的样式
为已访问和未访问链接设置不同的样式
设置元素获得焦点时的样式
伪元素
概念:创建一些不在文档树中的元素,并为其添加样式。(就是选取某些元素前面或后面这种普通选择器无法完成的工作,虽然用户可以看到这些文本,但是这些文本实际上不在文档树中。)
它可以用于
设置元素的首字母、首行的样式
在元素的内容之前或之后插入内容