有什么区别:before和:: before?

Moh*_*sen 68 css css-selectors css3

我刚看到一个包含::before标签的CSS代码.我看着MDN看看是什么,::before但我真的不明白.

有人能解释它是如何工作的吗?

它是否在CSS选择之前构成DOM元素?

Chr*_*nte 52

根据这些文档,它们是等效的:

element:before  { style properties }  /* CSS2 syntax */

element::before { style properties }  /* CSS3 syntax */
Run Code Online (Sandbox Code Playgroud)

唯一的区别是双重冒号用于CSS3,而单冒号是遗留版本.

推理:

在CSS 3中引入了:: before表示法,以便在伪类和伪元素之间建立区分.浏览器也接受表示法:在CSS 2中引入之前.


Rob*_*evy 15

这将伪元素与伪类区分开来.

http://www.d.umn.edu/~lcarlson/csswork/selectors/pseudo_dif.html中描述了伪类和伪元素之间的区别.

  • 在CSS3中引入:: before表示法(带有两个冒号),以便在伪类和伪元素之间建立区分.浏览器也接受这个符号:在CSS 2中引入之前.来源:https://developer.mozilla.org/en-US/docs/Web/CSS/::before以前是伪ELEMENT而不是伪CLASS(如:悬停)两个冒号更好(因此遵循CSS3标准). (5认同)

pro*_*son 11

它们基本上意味着同样的事情.将::在CSS3介绍,以帮助伪元素(如:before和:after)之间descriminate和伪类(如:link和:悬停).


Sin*_*1ty 6

我检查了MDNw3.org,我能想到的最好的方法::是用于结构更改,并:用于样式设置

由于兼容性原因,它们当前可以互换。

它似乎分离:link(例如),该样式<a>,从:before(这是一个结构变化)。

:用于样式,::用于结构。