: after vs. : : after

CSS 2.1 :after和 CSS 3 ::after伪选择器之间有什么功能上的区别吗(除了旧版浏览器不支持 ::after之外) ?是否有任何实际的理由使用新的规范?

28015 次浏览

这是伪 同学们和伪 元素的区别。

除了 ::first-line::first-letter::before::after(它们已经出现了一段时间,如果需要 IE8支持,可以使用单个冒号) ,伪 元素 要求双冒号。

伪类 选择实际元素本身,例如,您可以使用 :first-child:nth-of-type(n)来选择 div 中的第一个或特定的 <p>
(还有像 :hover:focus这样的实际元素的状态。)

伪元素 的目标是像 ::first-line::first-letter这样的元素的子部分,它们本身并不是元素。


实际上,这里更好的描述是: http://bricss.net/post/10768584657/know-your-lingo-pseudo-class-vs-pseudo-element
同样在这里: < a href = “ http://www.evotech.net/blog/2007/05/after-v-after-what-is-double-冒号/”rel = “ norefrer”> http://www.evotech.net/blog/2007/05/after-v-after-what-is-double-colon-notation/

::after这样的 CSS 选择器是一些在 DOM 树中不能作为显式元素使用的虚拟元素。它们被称为“ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~”,用于 插入元素之前/之后的一些内容(例如: ::before::after) 或者,选择一些部分元素(例如: ::first-letter)。目前只有5个标准的伪元素: after, before, first-letter, first-line, selection

另一方面,还有其他类型的选择器,称为“ 翻译: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对: 奇芳校对:”,用于定义元素的 特别州(如 :hover:focus:nth-child(n))。它们将选择 DOM 中的整个现有元素。伪类是一个包含30多个项目的长列表。

最初(在 CSS2和 CSS1中) ,单冒号语法用于伪类和伪元素。但是,在 CSS3中,为了更好地区分伪元素,::语法替换了 :符号。

对于向下兼容来说,旧的单冒号语法对于像 :after这样的伪元素来说是可以接受的(浏览器仍然支持旧的单冒号语法)。只有 IE-8不支持新的语法(如果你想支持 IE8,可以使用单冒号)。