前端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其它相关文章!