1、伪元素可用于定位文档中包含的文本,但无法在文档树中定位。伪元素表示DOM外部的某种文档结构。伪类一般反应无法在css中轻松的检测到某个元素属性或者状态。
CSS
伪类用于向某些选择器添加特殊的效果。
CSS
伪元素用于将特殊的效果添加到某些选择器。
第一两者都与选择器相关,第二就是添加一些“特殊”的效果
伪类和伪元素的根本区别在于:它们是否创造了新的元素(抽象)。从我们模仿其意义的角度来看,如果需要添加新元素加以标识的,就是伪元素,反之,如果只需要在既有元素上添加类别的,就是伪类。标准精确地使用 "create" 一词来解释伪元素,而使用 "classify" 一词来解释伪类的原因。
伪类一开始单单只是用来表示一些元素的动态状态,典型的就是链接的各个状态(LVHA)。
伪元素则代表了某个元素的子元素,这个子元素虽然在逻辑上存在,但却并不实际存在于文档树中
2、对于IE6~8,仅支持单冒号表示法,现代浏览器两种方法都支持。另外一个区别是,双冒号与单冒号在css3中主要用来区别伪类与伪元素
3、伪元素包括:
css中的 :first-line :first-letter :before :after
css3调整后的 ::first-line ::first-letter ::before ::after ::selection
4、伪类包括:
动态伪类选择器 :link :visited :hover :active
目标伪类选择器 :target
UI元素状态伪类选择器 :checked :enabled :disabled
结构伪类选择器 :first-child :last-child :root E F:nth-child(n) E F:nth-last-child :nth-of-type(n) :nth-last-of-type(n) :first-of-type
:last-of-type :only-child :empty
否定伪类选择器 :not()
语言伪类选择器 E:lang(language)