css中伪元素和伪类有区别吗?

css中伪元素和伪类有区别吗?区别是什么呢?下面本篇文章给大家介绍一下。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。

前端er们大都或多或少地接触过CSS伪类和伪元素,比如最常见的:focus,:hover以及<a>标签的:link、visited等,伪元素较常见的比如:before、:after等。

其实上面提到的这些伪类和伪元素都是CSS1和CSS2中的概念。

在CSS1和CSS2中对伪类和伪选择器没有做出很明显的区别定义,而二者在语法是一样的,都是以:开头,这造成很多人会将某些伪元素误认为是伪类,如:before,:after;

CSS3对这两个概念做了相对较清晰地概念,并且在语法上也很明显的讲二者区别开,也更容易理解。

定义

伪类

伪类

用于选择DOM树之外的信息,比如:visited,:active;或是不能用简单选择器进行表示的信息,包含那些满足一定逻辑条件的DOM树中的元素,比如:first-child,:first-of-type,:target。

伪元素

DOM树没有定义的虚拟元素。不同于其他选择器,它不以元素为最小选择单元,它选择的是元素指定内容。比如::before表示选择元素内容的之前内容,也就是"";::selection表示选择元素被选中的内容。

语法

在CSS3中,伪类与伪元素在语法上也有所区别,伪元素修改为以::开头。但因为历史原因,浏览器对以:开头的伪元素也继续支持,但建议规范书写为::开头。

总结

1.伪类本质上是为了弥补常规CSS选择器的不足,以便获取到更多信息;

2.伪元素本质上是创建了一个有内容的虚拟容器;

3.CSS3中伪类和伪元素的语法不同;

4.可以同时使用多个伪类,而只能同时使用一个伪元素;

更多web前端开发知识,请查阅 HTML中文网 !!

以上就是css中伪元素和伪类有区别吗?的详细内容,更多请关注易知道|edz.cc其它相关文章!

推荐阅读