伪元素和伪类在我们的日常开发中,其实很多人都用过,但是面试官真要问起来,仿佛又说不清楚个所以然,今天特意来总结了一下。
简单一句话:伪类,是需要增加一个类,才能达到的效果;伪元素是需要增加一个元素,才能达到的效果。
首先,什么是伪类呢?
比如::hover,:active,:link,:first-child,:focus 等等
伪类的用法以:first-child为例。如果不用伪类,想要达到同样的效果,需要在span标签上增加一个class类才可以。
.aa>span:first-child{
color: darkgoldenrod;
}
然后,什么是伪元素呢?
主要有这些 ::before,::after,::first-line,::first-letter,::selection
用法以::first-line为例,如果不用伪元素,那需要在p的第一行上加一个元素标签,才能实现同样的效果。
p::first-line{
color: red;
}
:和 :: 的区别
伪类一律用单冒号,在css1和css2中,伪元素也是单冒号。但是css3为了区分伪类和伪元素,规定伪元素用双冒号。但是为了兼容css1和css2,伪元素依然可以用单冒号。
伪元素和普通元素的区别
伪元素必须依赖普通元素而存在,不能单独存在。