没有区别 他们都是CSS伪元素,与:hover/:active等伪类不一样。:before/:after伪元素是在CSS2中提出来的,所以兼容性可能到IE8了。::before/::after是CSS3中的写法,为了将伪类和伪元素区分开。但是平时为了兼容性,还是会用一个冒号的写法。