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

时间:2011-09-06 23:31:18

标签: css css3 css-selectors

我刚刚看到包含::before标记的CSS代码。我查看了MDN,看看::before是什么,但我真的不理解。

有人可以解释一下它的工作原理吗?

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

5 个答案:

答案 0 :(得分:43)

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

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

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

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

<强>推理:

  

在CSS 3中引入:: before表示法以便建立一个   伪类和伪元素之间的区别。浏览器   也接受表示法:在CSS 2中引入之前。

答案 1 :(得分:16)

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

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

中描述

答案 2 :(得分:8)

他们的意思基本相同。 CSS3中引入了::来帮助理解伪元素(如:before和:after)和伪类(如:link和:hover)。

答案 3 :(得分:3)

我查看了MDNw3.org,我能想到的最好的是::用于结构更改,{{1用于样式

出于兼容性原因,它们目前可以互换。

它似乎将:(例如)与:link的{​​{1}}区分开来(这是结构更改)。

<a>用于样式,:before用于结构。

答案 4 :(得分:2)

一种是CSS2(:之前)方式,另一种是CSS3(::之前)。目前,它们可以在支持CSS2和Linux的浏览器中互换。 CSS3。

以下是一个很好的解释:http://www.impressivewebs.com/before-after-css3/