伪类和伪元素

伪类

伪类对元素进行分类是基于特征(characteristics)而不是它们的名字、属性或者内容;原则上特征是不可以从文档树上推断得到的。

CSS伪类是用来添加一些选择器的特殊效果。

解释:在感觉上伪类可以是动态的,当用户和文档进行交互的时候一个元素可以获取或者失去一个伪类。例外的是":first-child"能通过文档树推断出来,":lang"在一些情况下也在从文档树中推断出来。
由此可以看出,它的功能和class有些类似,但它是基于文档之外的抽象,所以叫伪类。 [1] 
伪类有::frist-child,:link,vistited,:hover,:active,:focus,:lang,:right,:left,:first
何为伪类?就是css内植类css内部本身赋予它一些特性和功能,也就是你不用再class=...或id=...你就可以直接拿来使用,当然你也可以改变它的部分属性比如:a:link{color:#FF0000;}
css很多的建议并没有得到浏览器的支持,但有四个可以安全用在超链接上的伪类。
 
伪元素
 伪元素是创造关于文档语言能够指定的文档树之外的抽象。例如文档语言不能提供访问元素内容第一字或者第一行的机制。伪元素允许设计师引用它们,否则这是难以办到的。伪元素还提供样式设计师给在源文档中不存在的内容分配样式(例如::before和:after能够访问产生的内容)。

总结一下伪类与伪元素的特性及其区别

  1. 伪类本质上是为了弥补常规CSS选择器的不足,以便获取到更多信息;
  2. 伪元素本质上是创建了一个有内容的虚拟容器;
  3. CSS3中伪类和伪元素的语法不同;
  4. 可以同时使用多个伪类,而只能同时使用一个伪元素;

注:引用百度百科

原文地址:https://www.cnblogs.com/yixiaoyu/p/9867350.html