为什么有两个冒号在这里? 跨度::前(Why are there two colons here

2019-07-03 20:14发布

这是代码的全线我在看,这里是它的背景: http://acidmartin.wordpress.com/2011/02/24/custom-crossbrowser-styling-for-checkboxes-and-radio-buttons

input[type="radio"] + span::before { content: ""; display: inline-block; width: 20px; height: 20px; background: url("sprite.png") no-repeat -20px 0; vertical-align: middle; }

我如何工作有了深入了解,但我不明白为什么有两个冒号,而不是广度和前之间的一个。

在选择之前,从我读过应该使用一个冒号。

http://www.w3schools.com/cssref/sel_before.asp

W3C的,我找不到有两个冒号任何选择,我也不能弄清楚为什么会跨度有一个冒号跟随它,除了“之前”冒号前面。

http://www.w3.org/TR/CSS2/selector.html

Answer 1:

这是一个伪元素 ,通过定义CSS选择3级规格:

::before::after伪元素可以使用之前或元素的含量后,描述生成的内容。

这是有效地与由2级规范定义的单结肠语法。 级别3规范引入了额外的结肠伪元素和伪类(其使用一个单一的冒号)之间进行区分。

两种语法将在新的浏览器工作,但旧的浏览器将无法识别新::风格。


提供更多信息,你可以看一下语法从3级规范,其中规定:

“::”开头的伪元素,“:”伪类



Answer 2:

你可以阅读关于它的文章在这里

但基本上它是伪类和伪元素之间进行区分。 它是使用两个冒号的一个伪元素,如反对只是其中一个CSS2标准中的CSS3标准。

一个或两个冒号将作为浏览器要同时满足CSS2和CSS3



文章来源: Why are there two colons here? span::before