Par*_*ult 120 css css-selectors pseudo-class css3 pseudo-element
CSS 2.1 :after和CSS 3 ::after伪选择器之间是否存在任何功能差异(::after旧浏览器不支持)?是否有任何实际理由使用新规范?
Dom*_*nic 120
它是伪类与伪元素的区别.
除::first-line,::first-letter,::before和::after(其中已经出现了一会儿,可与单冒号,如果你需要IE8支持使用),伪元素 需要双冒号.
伪类本身选择实际元素,例如,您可以使用:first-child或:nth-of-type(n)选择<p>div中的第一个或特定元素.
(还有像:hover和的实际元素的状态:focus.)
伪元素定位元素的子部分,如::first-line或::first-letter不是元素本身的东西.
实际上,这里有更好的描述:http://bricss.net/post/10768584657/know-your-lingo-pseudo-class-vs-pseudo-element
也在这里:http://www.evotech.net/blog/2007/ 05 /后v型后是什么-是-双冒号符号/
CSS选择器::after是一些虚拟元素,不能作为DOM树中的显式元素.它们被称为" 伪元素 ",用于在元素之前/之后插入一些内容(例如:::before,::after),或者选择元素的某些部分(例如:) ::first-letter.目前只有5个标准伪元素:after, before, first-letter, first-line, selection.
在另一方面,还有其他类型的选择称为"的伪类,其被用于定义一个" 特殊状态的元件的(等作为:hover,:focus,:nth-child(n)).这些将选择DOM中的整个现有元素.伪类是一个包含30多个项目的长列表.
最初(在CSS2和CSS1中),单冒号语法用于伪类和伪元素.但是,在CSS3中,::语法替换了:伪元素的符号以更好地区分它们.
为了向后兼容,旧的单冒号语法对于像as这样的伪元素是可接受的:after(浏览器仍然都支持带有一个分号的旧语法).只有IE-8不支持新语法(如果你想支持IE8,请使用单冒号).