详解 CSS 属性 - 伪类和伪元素的区别

Published by Xianqiao Wang on May 5th, 2015

  • CSS 伪元素用于将特殊的效果添加到某些选择器。
  • CSS 伪类用于向某些选择器添加特殊的效果。
  • 第一两者都与选择器相关,第二就是添加一些"特殊"的效果。
伪类的效果可以通过添加一个实际的类来达到,而伪元素的效果则需要通过添加一个实际的元素才能达到,这也是为什么他们一个称为伪类,一个称为伪元素的原因。

伪元素:
你只能在一个选择器中使用一个(css4 中说一定)伪元素. 伪元素必须跟在一个简单选择器语句的后面.
但实际上 css3 为了区分两者,已经明确规定了伪类用一个冒号来表示,而伪元素则用两个冒号来表示(有兼容问题)。注意: ::selection 永远只能以双引号开始 (::).
当我们指定某一元素被选中后的特殊状态时,一个 CSS 伪类 会被作为一个关键词添加到选择器上. 例如 :hover 会在当用户鼠标指针悬停在由选择器指定的元素上时应用一个样式.

http://segmentfault.com/a/1190000000484493